Gorton Studios is proud to announce the relaunch of The Rake Magazine as a Drupal site. The Rake is an arts and culture magazine based in Minneapolis/St. Paul. The magazine is known for its strong storytelling focus as well as its unapologetic brand of humor, style, and personality.
The main goals of this new site were to expose The Rake’s rich resources (about 7,000 nodes) and help visitors find interesting content quickly. It features a wealth of carefully highlighted and cross-connected articles, integration with the organization’s pre-existing Event and Restaurant database (still managed outside of Drupal) and a bevy of blogs.
Simplifying administrative overhead was a key mandate from the outset. The old system was an unwieldy mix of Movable Type blogs and custom CMS content. Updating and featuring content had become an overwhelming process that was preventing The Rake‘s online edition from growing into something more fluid and community-oriented. The new site has enabled much more frequent updating, thanks to easily edited content and a robust permissions system.
Read on for some of the modules and techniques involved in building this site.
A Whole Lot of Custom Block Regions
The site design, provided by Kraig Larson of Ciceron, called for four to six columns of content on every page. After our team (ronan - developer, themer and estenrick - project manager, configurer) examined all of the layout variations and identified major commonalities, we defined eight different block regions for our template—shown as blue highlights in this image.
The Theme Developers Guide has a very nice Regions in PHPTemplate write up on how to do this.
Content Type Templates
We considered several ways to handle the “main content”—the inner columns of each landing page. Top contenders included the Panels module or a custom content type (via CCK). Although Panels allowed us to cover a lot of ground quickly, we eventually settled on custom content types, because we liked the extra control it allowed. Our decision resulted in quite a few content types, but it did the trick.
For example, the 'homepage' content type consists of a title field and a variable number of features (using field_feature—a CCK Node Reference field—set to multiple). The features are then themed as teaser views of highlighted nodes.
The bottom portion of the homepage content type follows a defined set of rules:
- The first column displays the most recently-reviewed restaurants.
- The middle column has upcoming events.
- The last column shows the latest promotions.
These rules are written directly into the theme file (node-homepage.tpl.php) - see this image for a visual breakdown. The restaurant and event content is provided by an XML feed from the client’s ASPX system, which is cached and refreshed on an hourly basis. The latest promotions column is populated by a view that we embedded directly into the theme file. (See a good description of that technique in the Views Documentation, under Inserting Views).
Lots of Little Details
Each of the content types was constructed in a similar manner. Straightforward, perhaps, but all told this site has 30 content types, 40+ fields, 5 themes (4 of which are for generating HTML for email newsletters), 70+ template (*.tpl.php) files, 30+ views, 40+ blocks and over 7,000 nodes.
Most every page, therefore, has quite a few different moving parts. For an example, see this image for a breakdown of the 24 separate pieces that went into making the "Eater's Digest" page.
Challenges
Every project has its challenges. The major hurdles we faced with this site were generally due to the depth and breadth of the content combined with a short timeline.
- The Migration of Existing Content
The Rake has been online since early 2002 and has amassed a large amount of content. The challenge? The content was not all coming from one place. Over the years, the magazine had been through several versions of a custom CMS (ASP + SQL Server), had incorporated Movable Type for their blogs (CGI and MySQL on IIS), and had developed a custom Restaurants and Events system (ASPX). We quickly moved all that disparate data—very little of which was cleanly separated—into the appropriate Drupal locations, content types, and fields. As an added bit of fun, we also imposed the laws of grammar on old content—parsing for proper title capitalization and making sure all those special characters like em-dashes and ellipses came along for the ride. (It is a magazine, after all). The old URLs were added as Drupal redirects, and the previous HTML contents were parsed to find, save and store all images referenced in content. - So Many Rules
The individual pieces of this site are not exceedingly complex, but there are a lot of pieces. Each content type has very particular rules about how its data should display, and those rules change depending on where the data appears. Not to mention, as with most projects, these carefully crafted rules shifted and evolved during development.
Modules Used
Site Structure
- Content Construction Kit - the backbone of just about everything, along with Date, File Field, Image Field, Link, and the CCK core Fieldgroup, Node Reference, Number, Option Widgets and Text
- Views - used all over to expose lists and groups of content, along with Views core RSS, Theme Wizard and UI with custom cache wrapper for performance
- Pathauto - providing good, meaningful URLs
- Token - sharing info with other modules
- Content Templates - templating the outgoing RSS feeds
- Node Hierarchy - released with the launch of this site. A module for managing hierarchical relationships and generating menus, paths, views and controlling access based on the same.
- Path Redirect - handle all those redirects from the old site to the new locations
- Global Redirect - redirecting multiple node addresses to one
- Webform - providing contact forms
- Drupal Core: Aggregator, Comment, Help, Menu, Search, Path, Statistics, Taxonomy
Presentation and User Experience
- Signwriter - generating graphic headers from TTF files (e.g. creating Block titles that are shown to the visitors as graphics via CSS)
- SWFObject - embedding Flash content
- Image Cache - generating multiple sizes of the same image
- Thickbox - jQuery goodness for nice image galleries
- Similar by Terms - facilitating relationships between content based on similarly 'tagged' taxonomies
- Suggested Terms - helping keep those tags manageable
- Paging - breaking nodes into multiple pages
- Forward - email the page's content to a friend
- Printer-Friendly Pages - cleaning the display for printing (e.g. spelling out the URLs behind links)
- Javascript Tools (JS Calendar) - picking dates faster
Site Administration
- Automatic Nodetitles - simplify content type creation and improve consistency at the same time
- Meta Tags - setting meta tags per node (and more)
- TinyMCE - WYSIWYG editing goodness
- IMCE - image management goodness, also in conjunction with TinyMCE
- Filter Default - giving different roles different default input filters
- Captcha - SPAM policing the user-submitted comments (and more)
- User Comment - giving content authors control over comments on their content
- Search Keywords - a quick lookup on search terms
- Google Analytics - tracking site usage
Development Tools
- Devel - helping deconstruct and optimize everything
- Backup and Migrate - released with the launch of this site. A module for moving data en-masse from server-to-server as well as doing things like scheduled backups.
Giving Back to Drupal: an Idea and a Donation
Finally, we’re using this occasion to so some good. With this site's launch, we are committing at least 1% of a project's gross every single time we launch a Drupal site. We have gained so much from the Drupal Community (knowledge, support, and a fantastic tool) that we feel compelled to regularly give something back. We’re guessing that other developers may feel the same way, so we’re inviting you to join us in making a formal commitment. You can read more about that idea in this forum post: http://drupal.org/node/191605
Comments
Yeah sure, you betcha...
Very nice work, and a great writeup. I look forward to poking around in the "backup and migrate" module.
Great writeup! Could you
Great writeup! Could you elaborate your data migration process some more. Was this through SQL scripts? Import/export module? Manual? Time consuming?
Several pieces...
I can speak best to the export process - Ronan is the guy to talk about the import side of things. The custom CMS was exported to a text file using ASP / SQL. It was a bit hairy to nail down, though, as the multiple versions of the system had left some inconsistencies in the way the data was handled. Nothing terribly fancy there, though, just some logic to work out the different cases and put it out in a regular fashion.
The Movable Type export was hugely facilitated by the Migrating from Movable Type post. Ronan did the job right on the other side (as in - he cleaned up the hacks I posted that thread) - but again, that's his thunder, not mine.
And, yes, it was time consuming, just by virtue of the amount of content and the number of times it needed to be done during development and before the final launch.
For the import I used
For the import I used SimpleXML to parse the files generated from the old CMS and Movable Type. I then looped through the entries and created a node for each one. It took about 15 minutes to write the first draft of the importer.
Then came the hard part...
The old CMS stored authors as plain text (often including an art or illustration credit) In the new systems authors are nodes so that they can have biographies and images and a page to list all of the work by a given writer. (http://rakemag.com/authors/tom-bartel) Art credit's are free text for flexibility. This needed to be parsed from the old system (including misspellings, extra commas, etc.). Similar deal with magazine issues.
The old CMS did not have a notion of subsections, so they were added to the title (eg: "Features }} The Death of the American Imagination") with a wide variety of styles and punctuation separating them.
The visual style of the old design called for uppercase on a lot of titles which I had to convert to proper title case for the new system.
Images and file attachments needed to be grabbed from the old server, embedded ads needed to be placed, etc., etc. The import module is about 2000 lines of mostly special case handling and parsing. Combine this with the fact that with ~7000 nodes to import, it took 3-4 hours to run through the entire import process for testing.
The big picture is that importing data from XML is really simple, but the devil is in the details.
------------------------------------
Ronan - Gorton Studios - http://www.gortonstudios.com/
------------------------------------
Ronan
Founder - NodeSquirrel - https://www.nodesquirrel.com/
Agency Tools Lead - Pantheon - https://www.pantheon.io/
Great import explanation
Thanks for so quickly making clear how you handled the migration.
I am trying to import a bunch of articles from my old mediawiki site into my new drupal site. I can export them as XML. I'm trying to learn everything I need to be able to do this, but want to make sure I am heading in the right direction. If you were importing XML from mediawiki to Drupal, would you still use simpleXML to parse them into nodes? Just hope you can provide a suggestion on this, so I don't head down the wrong road.
Also, thanks for your guys terrific write up. Such tremendous help.
Probably...
I haven't used Mediawiki and I don't know what the size / scope /structure of your export looks like. XML is basic stuff, though, so importing an XML file produced by Mediawiki should be quite similar to importing an XML file produced by Movable Type.
Drew Gorton
Gorton Studios
Wow
This is an amazing project, nice work! Integrating all those data sources must have been a huge job. Probably the best writeup I've seen on Drupal.org, I especially like your diagram showing where the content is coming from.
--
John Forsythe
Need reliable Drupal hosting?
Really? (stunned silence...)
I saw this comment right away, of course, but I'm still not quite sure how to react. (You've seen other writeups, right?) We certainly spent some time trying to make it relevant, informative and interesting, but that's pretty high praise indeed.
Not much else to say other than - Thank You.
Good Work
Very nicely done!
Many thanks for this extremely useful writeup.
The 1% idea is great!!
----------------------------------------------------------------
Very nicely!
Very nicely!
Nice work, do you use panels
Nice work, do you use panels 2 ?
---
Biladi US Morocco
http://www.biladi.us
I weighed Panels as a
I weighed Panels as a possibility for creating the landing pages, but ultimately decided that it gave us a little too much flexibility. I was very impressed with the functionality and interface of Panels and would recommend anybody interested in a quick and easy way of accomplishing a complex panel-like layout should check it out.
We wanted the editing interface to be a little more streamlined and simpler for the end user. That is why we decided to create a different CCK type for each landing page with fields for each of the things that can be edited (featured articles etc.) and to place the layout and non-editable functionality in the tpl files for those node types.
------------------------------------
Ronan - Gorton Studios - http://www.gortonstudios.com/
------------------------------------
Ronan
Founder - NodeSquirrel - https://www.nodesquirrel.com/
Agency Tools Lead - Pantheon - https://www.pantheon.io/
Nice text, enjoyed reading
Nice text, enjoyed reading it- thanks
Really impressive work and
Really impressive work and excellent writting.
Very useful.
Also, your "Giving Back to Drupal" idea is very nice.
---
Drupal Theme Garden
wonderful writeup!
really an excellent work & a wonderful writeup!
-- Sree --
IRC Nick: sreeveturi
Beautiful website and
Beautiful website and Congratulations on completion! :) Thanks for the write-up as well!
Ideed , Great
Ideed , Great work
-------------------------------------
My drupal site: http://life.j0575.com,
j0575
Content Migration
I think the content migration task was a big challenge, specially when you have to integrate it from different sources! Congrats guys for handling it successfully.
------------
Info4beingrich - Blog Tips To Make Money
Printer-friendly icon...
I just love the way that the PF link (and the forward link) have this icon next to them..
Can you provide more details on how you did it? I am trying to document this in the PF module documentation, but I would prefer a real-world description...
Thanks for the excellent writeup! The site feels and looks great!
João Ventura
(Printer-friendly module maintainer)
João Ventura
Venturas.org
It's actually incredibly
It's actually incredibly easy to do with CSS since the links have descriptive classes:
So it's trivial to add a background image to the links:
Non blocking items (like 'a') will not take the left padding unless you make them blocking (see
display: block;
above). This is perfect if you want them stacked vertically like on the Rake site. If you want them inline like normal, you will need to float them. I add the icon to the a tag rather than the surrounding div, because I want the icon itself to be clickable.Also, the icons themselves are derived from FAMFAMFAM's excellent silk set (http://www.famfamfam.com/) which is released under a Creative Commons licence so they're free to use if you credit the creator.
Hope this helps
------------------------------------
Ronan - Gorton Studios - http://www.gortonstudios.com/
------------------------------------
Ronan
Founder - NodeSquirrel - https://www.nodesquirrel.com/
Agency Tools Lead - Pantheon - https://www.pantheon.io/
Thanks for the write up and
Thanks for the write up and modules, the site looks very nice, easy to navigate and structured well with many options to click per node to find relevant content. I have a question about...
What's in these nodes? Views? Arguments? The list with images and links to articles written by the author looks really nice and clean.
What is the relationship between articles and authors? I started a thread here about that topic.
Again thanks for the write up and comments, kudos for all your work.
The fields on the nodes are
The fields on the nodes are simply First Name, Last Name, Bio and Image. Articles have an Author node reference field as your thread describes.
The Author article listings are created by a view which is embedded in the tpl file for the Author node type. The view has an argument for the Author node reference, and the Author's nid is passed into the views_build_view function when it is embedded:
in node-author.tpl.php:
in my custom module (can be placed in template.php):
------------------------------------
Ronan - Gorton Studios - http://www.gortonstudios.com/
------------------------------------
Ronan
Founder - NodeSquirrel - https://www.nodesquirrel.com/
Agency Tools Lead - Pantheon - https://www.pantheon.io/
{Ah ha moment} Might take me
{Ah ha moment}
Might take me a while to figure this one out but thanks for the code examples and direction.
Also using content types as sections is a great idea for workflow and easy updating without down time. Thanks.
Drupal Twin cities presentation?
Hi Ronan. If you are presenting any of the development of the Rake website to a developer community, please let me know, I'd like to attend (I'm in midtown minneapolis). I'm assuming you are local in the twin cities, disregard this if not. Nice work, I check the mag periodically, I'll start checking the site more now.
Andy
Yep
This next one is going to be done by someone else - I don't recall the topic - but I know it's the week after Thanksgiving. Watch http://groups.drupal.org/twin-cities for specifics, though. The following meeting time falls right in the middle of Christmas week and so that one isn't going to happen, I believe.
The following meeting, however, we're planning on presenting. This site will probably be the major topic, but we might also talk about some aspects of some of our other Drupal projects. It's a bit loosy-goosy at the moment - but - hey - it's months away, too.
Drew Gorton
Gorton Studios
Time?
I always enjoy these articles. It really helps to see what modules people are using. What they never mention is how long it takes to complete a project like this. My clients are always asking me for time estimates, but as somewhat of a drupal newbie, I have problems guestimating.
jdcllns
Ah, Yes. Time.
I'm probably safely qualified as a Not-A-Newbie. It doesn't necessarily help. As Ronan noted in one of the above posts, the devil is in the details. Sure - you want to import your Movable Type blogs? Proof of concept in a day. You want to properly parse, re-categorize, punctuate, preserve images, files, redirect URLs and generally tidy up while we're at it? That's a whole order-of-magnitude larger.
I tend to be an optimist. Ronan's joke around here is that you take my estimate, double it and then add a zero. (Ronan's the pessimist counter-weight). Denise and Erika put up with both of us and somehow calculate a real number based on our crazy inputs. [So that probably means I shouldn't be answering this.... Erika?]
In life terms, though, the first programming task was sorting out the import madness, and that started August 6th. The site launched on November 1, so that looks like 12.5 weeks of build. I think Erika was up and running the week before, getting things like content-types worked out. In terms of hours, the order-of-magnitude was 500 - 1000 (I'm not sure it's fair to the client to reveal that number exactly).
In any case, it was a crunch. The client really wanted to push, however, and we did our best to accommodate. We had two other 1,000+ node sites overlap this project (one of which launched yesterday) - so that basically amounted to a busy fall. It was a lot for the client as well - they had to turn around decisions quickly and organize lots of input in extremely short timeframes.
Every project is unique, though - so it's hard to generalize. There won't ever be a project with exactly the same parameters, people, circumstances and decisions ever again. There are a lot of places the project could have gotten either simpler or more complex.
How's that for a sort-of answer?
Drew Gorton
Gorton Studios
Actually, great sort-of answer
That really helps. No one seems to believe me when I do time estimates. They just can't see how it would take that long. Your build time helps me to believe that my estimates are fairly close.
Thanx
www.deancollinsonline.com
jdcllns
Creating the Homepage
Firstly, excellent site and excellent write-up!
I'm very interested in how you created the "homepage". I get the theory of how you used CCK Node Reference field but would appreciate a bit more detail. Say you wanted to create a spot on the homepage like the one you have for resturants, events and promotions using a couple of basic content types (eg. News, Events, Blogs). What are the basic steps to achieve this?
Thanks for sharing!
-
Qatar - A Community Site
In this case, the
In this case, the restaurants and events are fed from an external tool via XML and I wrote code to parse and display the information. The promotions piece is a view which i embedded directly into the tpl file for the homepage node type. That template contains the html to structure the columns (nested divs, heavily inspired by (read: stolen from) the templates provided with the panels module -- which we used in an early prototype). Inside these divs I call custom theming functions like
echo _rake_get_latest_promotions()
which simply loads a view and renders it. See my comment above (http://drupal.org/node/191608#comment-630983) for more details on how to embed a view.------------------------------------
Ronan - Gorton Studios - http://www.gortonstudios.com/
------------------------------------
Ronan
Founder - NodeSquirrel - https://www.nodesquirrel.com/
Agency Tools Lead - Pantheon - https://www.pantheon.io/
Thanks
I am impressed !
Very nice work, and very detailed description, guys !
The idea of giving something back to the drupal community is quite impressive.
Keep up the good work.
Really great work
Really great example of how Drupal can be used, thanks guys.
I'm curious about the 'Most Popular' nodes in the sidebar -- I can see via source that they are embedded views, but I'm interested in the filter that's used to determine 'popularity'. My first thought was maybe 'Comment: Comment Count'...
Actually, the core
Actually, the core statistics.module provides the 'Node: Total Hits' and 'Node: Recent Hits' sort orders for this very purpose. The 'most emailed' block is provided by the Forward module itself.
A word of warning about the statistics sorting. Due to the nature of the join required to sort by hits, the SQL to get the popularity views is very slow. These 2 queries between them were accounting for as much as 2/3 of the total SQL fetch time for the home page. Since this block appears on every page that kind of resource use was unacceptable, so I created a custom block which wrapped these views and implemented caching (via cache_get and cache_set with a 1 hour minimum cache time.
The block cache module seemed to provide similar results, but I was unable to get it working properly in our environment and as it was an 11th hour addition, we decided to implement our own caching (3 lines of additional code) rather than spend the time to figure out why.
------------------------------------
Ronan - Gorton Studios - http://www.gortonstudios.com/
------------------------------------
Ronan
Founder - NodeSquirrel - https://www.nodesquirrel.com/
Agency Tools Lead - Pantheon - https://www.pantheon.io/
this is a great website and
this is a great website and an awesome writeup!
a quick question. Ronan - would you mind sharing your code for caching a specific view? How does one actually create a block in a module that links to some views and implement caching? i'd really like to see this as it seems like it would speed up my website significantly.
thanks!
Stealing Ronan's Thunder
I just spotted this question, have some down time so I'm going to take a stab at the answer. I also don't have the code near me, so that's an impediment, but the basic tools are
http://api.drupal.org/api/function/cache_set
http://api.drupal.org/api/function/cache_get
And the basic process is to grab your data and then stuff it into the cache (cache_set) it for re-use (cache_get). And, noting that I don't actually have the actual code, I did a smidge of Googling and came up with this gem: http://www.lullabot.com/articles/a_beginners_guide_to_caching_data -- which looks like a great description of the process.
Drew Gorton
Gorton Studios
Stealing Ronan's Thunder
I just spotted this question, have some down time so I'm going to take a stab at the answer. I also don't have the code near me, so that's an impediment, but the basic tools are
http://api.drupal.org/api/function/cache_set
http://api.drupal.org/api/function/cache_get
And the basic process is to grab your data and then stuff it into the cache (cache_set) it for re-use (cache_get). And, noting that I don't actually have the actual code, I did a smidge of Googling and came up with this gem: http://www.lullabot.com/articles/a_beginners_guide_to_caching_data -- which looks like a great description of the process.
Drew Gorton
Gorton Studios
great writeup! just curious
great writeup!
just curious on one thing... why use signwriter module for just a handful of fundamentally static block headings? why not just save the overhead processing and just hard code it?
these are the signwriter headings i've spotted by briefly looking at your excellent site:
most popular
rake blogs
restaurants
events
promotions
I would understand using it for node headings--that would get created on a regular basis (e.g. news articles), however, i don't get why use it on something that's not going to change often at all.
Consistency + Felxibility + Simplicity + Caching
Decent question. All of the above are reasons -
Consistency - in a site that pays attention to visual presentation, it's good to have the same processes produce the images. Even with the same TTF file producing the font, the renderings can change between servers and programs - enough so that it can be noticeable (at least if you look carefully). (So a Mac running Photoshop produces very different text aliasing than a linux server does).
Likewise, once something like this is put into your theme layer (e.g. block.tpl.php), you're set to use it everywhere unless you deliberately add exceptions -- and exceptions are places bugs (I mean issues) happen.
Flexibility - several titles - including things we thought could be considered 'static' - changed throughout the development process, and will probably continue to be adjusted in the future. It's good to have the ability to adjust things easily - good for the client, good for the developers.
Simplicity: It works well, and again, once it's up and running, it's simpler to let it run everywhere than to modify behavior if (X == true).
Caching: There's very little downside to pay for the above benefits - the images aren't generated at run time, they're cached -- so it's not a big performance hit.
Drew Gorton
Gorton Studios
I also was going to pose the
I also was going to pose the "Signwriter" question. Someone beat me to it, and your answer does make sense. At least until after a few months you realize they won't change, but in the early stages I see the need.
Quick question, how many queries does the homepage produce? (non-cached) Also, what module did you use for caching? Any contributed? Thanks!
I don't see us ever moving
I don't see us ever moving away from singwriter, actually. The overhead is minimal, and the client absolutely must have the ability to rename and create new sections etc. Also, as Drew mentioned, a combination of signwriter and hand generated text images is not visually consistent enough for our needs.
The homepage produces ~450 queries with a total query time in the range of 400ms under most loads. We use the built in caching and some custom code to reduce the frequency of the most resource consuming queries. We do not use any contributed caching modules.
------------------------------------
Ronan - Gorton Studios - http://www.gortonstudios.com/
------------------------------------
Ronan
Founder - NodeSquirrel - https://www.nodesquirrel.com/
Agency Tools Lead - Pantheon - https://www.pantheon.io/
Interesting about the
Interesting about the caching. What were the limitations you experienced with the contributed caching modules that made you write your own?
We had some perturbing
We had some perturbing results with Block Cache - which looks like an otherwise great module. In particular, we had blocks jumping around the page when we were enabling the cached versions - we weren't able to figure the pattern at all - just random blocks being enabled in different regions. We tried it as a possible low-hanging-fruit gain and stepped back from it when we got those odd results. We may go back and revisit that module and possibly others as well, but it's really on an as-needed basis for performance gains - which is something we're watching closely.
Most of the caching we're doing right now is around the complexity / specificity of the theme... and therefore they're being dealt with in the site-specific theme and module files.
Drew Gorton
Gorton Studios
COOL
cool and very helpful information. Thanks!
Ads in nodes
I'm interested in how you guys handled the ads in your nodes (i.e. http://www.rakemag.com/blogs/yo-ivanhoe/2007/11/man-goes-long-journey-st...)
Did you write some code to split up the node.tpl.php $content, or use multiple textfields, or something even smarter?
Pretty simple actually. I
Pretty simple actually.
I wrote a filter which converts a simple tag
[rakead:middle1]
inserted in the body into the javascript needed to embed the ad code.I also wrote code to automatically embed the code into the body on update if it is not there already (it embeds at the first paragraph break which is at a point greater than X characters). This allows the author to move the ad around if needed but does not allow them to forget the ad altogether. This was a specific requirement, as the client did not want their bloggers to have to deal with the ad embedding, but wanted full control over ad positions if needed.
------------------------------------
Ronan - Gorton Studios - http://www.gortonstudios.com/
------------------------------------
Ronan
Founder - NodeSquirrel - https://www.nodesquirrel.com/
Agency Tools Lead - Pantheon - https://www.pantheon.io/
Great job guys!
Great job guys! Congrats!
--
Muay Thai Singapore
Sailing Singapore
Thanks for that showcase. I
Thanks for that showcase. I found some new and pretty good modules here.
Not speaking about the cool noderef tips!
Rainer
How did you do the content by issue?
Thanks for the write up, very helpful
Can I ask, how did you setup the system for issues of the magazine?
And how did you do your homepage for the issue contents, eg:
http://www.rakemag.com/issues/2008/03
Great - glad it was worth the read!
Issues are just a content type - short description, thumbnail, date and perhaps a few other tidbits. They are then linked to via nodereference(s) from applicable articles. Being a content type, and therefore a node, theming the magazine issue page is a straightforward theming task via the usual node-CONTENT-TYPE.tpl.php.
Drew Gorton
Gorton Studios
Good modules
Can you name them for me?
:)
Morten
www.lille-web.dk
Which modules?
There's a list of everything used up there, under the title:
Modules Used
Did you have a specific question, though?
Drew Gorton
Gorton Studios
thanks for sharing
thanks for sharing
Nice!! How do you do the
Nice!! How do you do the "Sign up for Newsletter" box (and newsletter) - is it from the simplenews module?
Nope
That form currently ties into the Restaurants/Events (ASPX) system, which was already handling email functions. Drupal produces the content and templates it - the actual sending of email is handled by that system, however.
Drew Gorton
Gorton Studios
Module List Errata
I just made the discovery that I incorrectly attributed one of our Modules in the Module list. We did not use the 'SWFObject' module, but rather the SWFObject API module to embed Flash content.
Apologies!
Drew Gorton
Gorton Studios
Great work...... I am just
Great work...... I am just searching for few great Drupal sites.
Thanks for sharing.
http://www.techhunt.org
I work at Drupar.com
Lots of those...
Thanks! We're proud to be one small example of all the great sites. You probably found a bunch of others, but here are some other good places to check:
I'm sure there are oodles of other good lists, but those are where I would start a hunt for 'good' sites.
Drew Gorton
Gorton Studios
A very nice site!
Beautifully done!
Ali Hammad Raza
WordsValley
Now it is a WordPress site
Now it is a WordPress site - interesting.
Sadly, The Rake was closed
Sadly, The Rake was closed and then blended with several other websites in the years since this site was originally built. A lot of changes have happened, and now 'RakeMag.com' is forwarding to what looks like a newsy blog with some Rake branding on it. The site has gone through a few iterations and face-lifts since it stopped being a magazine/publication and although it continued to run our Drupal core site through at least a few of those changes, it looks like that, too, has changed.