Back to description
“Keep It Simple” is really a synonym for “Get a Grip.”
If you are reading this book, you probably have some degree of responsibility... more
If you are reading this book, you probably have some degree of responsibility in getting a website application up and running. If you are reading this chapter and you are searching for a series of steps you can actually assimilate and follow toward fulfilling that goal, then you are in the right place.
First of all, in a software project (and because of its complexity, that is what a website application is), you are either controlled by circumstances or you succeedbut only if you can maintain your grip on things. That’s only if, after receiving all the advice, you are able to fashion your own means of zooming into detail, return to the overview, keep it going, and know at all times where your bookmarks are … and if you can pilot the process of each layer making up the project, on every front: the purpose, the design, the usability, the navigation, the function, the data, the push and pull and flow of actions and results, the emission and reception of messages, the completion of tasks, the updating, the classification, and relation of content.
Which is to say, if you keep it simple and keep it all in view, or at least know where to look for it, then you can marshal your own approach to truly leveraging a powerful, open-ranging, and dynamically productive framework such as Drupal, the “Community Plumbing” Content Management System framework middleware powerhouse, featuring:
Significant off-the-shelf functionality
Tremendous extensibility through nearly 3,500 contributed modules
Based on one of the most active Open Source communities in existence
Drupal is all of these things.
Add to the mix that Drupal itself is evolving at a fairly brisk pace, as you’ll see in later chapters, and you definitely need to come to Drupal with your own approach.
Because you are using Drupal for world domination (a favorite geek metaphor among Drupaleros), then you had better have a program. And you had better make sure that everyone involved gets on that program and stays there.
... less
This book is all about keeping it simple, but to be useful for those wishing to leverage Drupal, the experience of working... more
This book is all about keeping it simple, but to be useful for those wishing to leverage Drupal, the experience of working through this book must be based on a reasonably complex real-world example. So, before diving right in, perhaps a recap is necessary.
In Chapter 1, the following questions were asked and answered in the context of using an Agile approach in the development of the example site worked on throughout this book, the On-Line Literary Workshop:
During the initial, Inception, phase, Chapter 1 explains that a Vision is developed, outlining the scope and feasibility of the project based on cost and schedule estimates; initial requirements, risks, and mitigation strategies are identified, and a technical approach is agreed on, including a working prototype.
So now you are coming out of the Inception Phase of the project, the Literary Workshop website application. We have a Vision and scope and identification of the customer based on the meme map and the identification of user roles and user stories. Also, if we did the job right, we at least have a text file somewhere outlining a list of risks: In this case“We’re using several technologies we’re not familiar with.” “Shared hosting is becoming downright impossible to use for any serious undertakings.” “A friend told me Drupal is very database-intensive.” “Our client lives in Alaska, and there will be no face-to-face meetings.” “The client’s best friend is doing the graphic design, and who knows when that will be ready?”And finally, we have settled upon a technical approach: We are definitely going to use a LAMP stack CMS framework deployed upon VPS hosting, with Drupal as our first choice.
The big job ahead of us now, as outlined in Chapter 1, is to embark on the Elaboration Phase in order to set the Requirements and Architectural baselines, and elaborate the planning.
For the Requirements baseline, you need to get the client to write the user stories you have outlined. But you want her to see and experiment with a running prototype before she does that, so you all know what you are talking about. This prototype will also allow you to experiment with different modules and theme approaches in Drupal so that you can move toward the fixing of the Architectural baseline, andhopefullymake a dent in the risk list also.
In this chapter, you will work on the first two of the following list of tasks, wrapping up all of them by the end of Chapter 5. So you certainly have your work cut out for you:
Creating an initial environment
Whipping up our initial prototype
Getting initial feedback from the client
Finishing the user stories with the client
Planning the project
Working on the architectural baseline
Getting the team organized and with the program
So you’ve started the project and identified your customer and her objectives, and identified the roles: the distinct kinds... more
So you’ve started the project and identified your customer and her objectives, and identified the roles: the distinct kinds of users who will be interacting with the website application. You’ve installed Drupal and begun getting your prototype on the road by creating your first cut of business objects based on a lexical analysis of the user story titles. You are almost at the point where you can ask the client for feedback to make sure the roles and list of user stories look complete, and to write the user stories. Coherency will be enhanced by her using the semantics offered by the list of business objects and the limited functionality you have started to put together based on input received so far.
Figure 3-1 shows the elaboration iteration as it looks now.
It doesn’t look like it, but you have actually done quite a lot of work already. Still, there’s plenty left to do. Let’s see how much we get done in this sprint, starting with the third task: get initial feedback from the client Pam (who actually does live in Alaska!) on Skype, and show her the website deployed to the test site (see Chapter 2).
Before that, though, let’s just review how the first task, creating an initial environment task, is implemented and how you can synch up your development box and your test site on a daily basis so that the client can always check out the latest relatively stable version on the test site.
At this point, the Elaboration phase is looking like Figure 4-1:
The good news is that because you have already done a lot... more
The good news is that because you have already done a lot of the groundwork, you are well on your way to being able to finish up the Elaboration phaseonce you complete this chapter and are able to release a fully functional prototype. So let’s get to it.
As the Milestone checklist shows (see Figure 5-1), you are almost done with the Elaboration phase. However, some additional... more
As the Milestone checklist shows (see Figure 5-1), you are almost done with the Elaboration phase. However, some additional work needs to be done on the first one, “Create an initial environment,” and there is a little unfinished business regarding the second, “Whip up the initial prototype.” Finally, there is one major milestone, “Work on the architectural baseline,” where there is still a lot to be done.
So the project is now under way. From your development box, you have access to the code repository, the Trac site, and the... more
So the project is now under way. From your development box, you have access to the code repository, the Trac site, and the application test site, and your client is participating from her workstation or laptop.
Since the envelope is going to be pushed now, with more significant parts of the architecture being implemented, things are going to get substantially more complicated, and communication runs the risk of getting dispersed.
This chapter address all these concerns. In the section, “You’ve Got Mail,” you see private messaging between yourself and the client in full swing. In the section, “Using Your Own dev Affinity Group,” you leverage the power of the Organic Groups module to create a special, secure place where development documents can be centralized and shared. You are introduced to the powerful Views module in the section, “Rolling Your Own Document Case and Index,” as you find ways of listing and indexing the contents of the dev affinity group content. In the section, “Now, Where Were We?” you review how Trac helps you keep a running sense of where you are on the project, and, indeed, the next few tasks are identified. Finally, the tools used so far are applied to the implementation of some of these tasks in the section, “Browsing and Filtering Views of Literary Pieces.”
One of the compelling reasons for using Drupal is that it allows you to cleanly override the layout and look and feel of... more
One of the compelling reasons for using Drupal is that it allows you to cleanly override the layout and look and feel of your website, a practice generally referred to as theming. This chapter explains how to do this by following “The Drupal Way.” By understanding how Drupal renders a page, how the content is passed to the theming component of the system, and exactly where and how developers and specialized graphic design people can conveniently affect the final outcome, you can become an expert Drupal themer.
However, our emphasis on theming doesn’t mean that we are concerned with graphic design in this chapter. You are not going to come out with a shiny new theme for Drupal here. But you are going to learn how to use existing themes, even bare-bones skeleton themes, and how to use the Drupal theming system to your best advantage.
Upgrading from one Drupal release to another is what you call a nontrivial task. As such, you really need to follow in the... more
Upgrading from one Drupal release to another is what you call a nontrivial task. As such, you really need to follow in the footsteps of those who are more experienced and can show you the pitfalls and possible problems you may encounter. For this reason, before even describing the basic steps, a recommended reading list is presented at the beginning, rather than at the end of this chapter.
Then the basic steps are outlined, and then you are taken by the hand and led through the complete detailed procedure you can later put to use yourself, using a real-world example, my blog, http://awebfactory.com.ar. It has been running for about three years now on Drupal, since October 2005. It started out on Drupal 4.4 or so. On the blog, there is an article on how I upgraded from Drupal 4.7 to Drupal 5.x (“Updating awebfactory.com.ar from 4.7 to Drupal 5”; http://awebfactory.com.ar/node/223).
http://awebfactory.com.ar
http://awebfactory.com.ar/node/223
There is even a before-and-after thumbnail, because I changed over to a custom theme. This time, however, I will be more than satisfied if I can get the same theme working as is under Drupal 6.x
So, here we go.
So you’ve decided to upgrade your site to Drupal 6! This section is meant to guide you through that process, after having... more
So you’ve decided to upgrade your site to Drupal 6! This section is meant to guide you through that process, after having gleaned from both experience and the best advice out there the concrete steps you should follow. The eight steps involved in any upgrade are:
1. Shift everything over to a test site (you may already have one, but this is just to make sure you are acting on the real McCoy, just in case you are not using version control).
2. Update everything to the latest Drupal 5.x version available, not only for Drupal core, but also for all the modules you are using.
3. Test everything running in the latest and brightest 5.x version.
4. Make a module inventory, and see which modules might not yet have been upgraded to a Drupal 6.x version. The modules that you have installed are the most important factor in determining how easy or difficult, or even possible, the upgrade process will be.
5. Switch to the default Drupal theme. Research whether or not your theme is available in a version for Drupal 6.
6. Disable all modules. Now, do not uninstall any of the modulesyou don’t want to disturb your data. You just want to leave the field clear for the Drupal 6.x core database upgrade to take place first.
7. Update the Drupal core.
8. Update each of the modules and the theme.
Pinch yourself: It’s alive!
However, even though each of these steps will always be present, they may vary in significance and the amount of work involved and the problems encountered in each case. The aim here is to cover as much of what you will realistically come up against rather than sharing yet another abstract guide; the material presented here is based on a single, although very representative and decidedly nontrivial, case study.
To show how Drupal 6, with its enhanced functionality, can really kick-start your website application right out-of-the-box... more
To show how Drupal 6, with its enhanced functionality, can really kick-start your website application right out-of-the-box, in this chapter you will develop a self-contained website application without installing a single additional module, with the exception of the ever-present CCK (and associated Date) and Views modules, which everyone automatically installs as a matter of course without giving it a second thought, and without which Drupal would not be Drupal.
The project, “Translation Studio,” consists of a multi-user, multilingual translation studio capable of being used by both Translators looking for work as well as Clients who need to get their translations done. Clients upload the work that needs to be done, a Translator Team Leader assigns the work to registered Translators, and the Translators log in and create bilingual or multilingual versions of the same document. When the work is ready to be downloaded, the Client is notified and logs in to access and download his or her translations. Translators are paid a standard rate through an off-site financial arrangement.
You will build this step by step, and, of course, as usual, the self-contained and fully functional code for the chapter is freely downloadable.
This time you will be following that workflow in a single chapter. The steps, tailored to the example shown here, are as follows:
1. Install Drupal on a LAMP stack.
2. Design and build the architecture.
3. Create the business objects.
4. Create the site user workflows.
This is actually the best part of the book, and the most representative of real-world work. Distracted by upgrades and other... more
This is actually the best part of the book, and the most representative of real-world work. Distracted by upgrades and other wonderment and a lot of stuff going on, you need to get back on track and bring the project to successful closure.
Now, at what stage is the project? How do you even know? Well, that’s the reason for the Agile approach ... a kind of Google Map of your project: Pan out for the big vision, zoom in to any area of detail you can easily get your head wrapped around, and break off, just a single task to get done and make another step forward. That way, you never get that jackrabbit-in-the-headlights paralysis feeling as complexity overwhelms you and you don’t know which way to turn.
This may seem obvious, but it is the single most frequent cause of delays in website application development, as complexity and contemplation and infinite choices rob your time and energy. With Agile, it’s like spreading all the cards on the table, taking a moment to put them in order together with the client, then using good old-fashioned worker discipline to reduce implementation to the process. This process is like plucking a card, getting it done, showing it off, feeling good, and then taking another card and another until it’s all done.
So this chapter is a road that’s going to lay itself, as you take a card, one at a time, and get it done. To work through the chapter, take the code from Chapter 7, and work through all the activities that follow below. As an alternative, you can simply download the tarball for this chapter and see the functionality already working as you read through this chapter.
Now, it has been a few chapters since you were working with the On-Line Literary Workshop. To get back in the driver’s seat, the best thing to do is to see which iterations are already done, then run the Acceptance Tests (the confirmation section of each user story, and an associated full-blown Acceptance Test for that user story if there is one) for all of the user stories in those iterations. Then take the first user story not yet implemented ... and do it.
To see a list of all user stories, log in as user dev, and then click on the groups’ primary menu link. This is because the dev group (which the development and client users are members of) is unlisted in the regular group directory. What you see in the dev group is simply the same thing you see at any group pagethe listing from what was left as the default group home page view, og_ghp_table. You need to hone your project tools a smidgen to make them more useful (which, in this use casethat is, coming home from Burning Man and getting back to workcan readily be seen as woefully inadequate, since you need to hone your project tools so as to be able to quickly see what your progress has been and how far you have come along in the implementation of user stories).
og_ghp_table.
After Katherine Bailey’s excellent series of articles (see “The Lowdown on jQuery in Drupal”:... more
After Katherine Bailey’s excellent series of articles (see “The Lowdown on jQuery in Drupal”: http://raincitystudios.com/blogs-and-pods/katherine-bailey/the-lowdown-jquery-drupal), there is certainly less mystery in the Drupal world concerning the use of the JavaScript library, which (in its own words) “is a fast, concise, JavaScript Library that simplifies how you traverse HTML documents, handle events, perform animations, and add Ajax interactions to your web pages” (see “jQuery: The Write Less, Do More, JavaScript Library” home page: http://jquery.com/). And articles such as Katherine’s certainly illuminate any AHAH problems developers tend to encounter.
http://raincitystudios.com/blogs-and-pods/katherine-bailey/the-lowdown-jquery-drupal
http://jquery.com/
But, what is Ajax? And what is AHAH? How do you wrap your head around the whole Rich Internet Application framework question? Also, why did Drupal chose jQuery over other extremely serious contenders? And what can rich internet middleware do for an application like the On-Line Literary Workshop?
So, where is it all headed? You often hear that Drupal 7 will be “The One.” Drupal 6, as you have seen, represented a huge... more
So, where is it all headed? You often hear that Drupal 7 will be “The One.” Drupal 6, as you have seen, represented a huge gain in functionality compared to Drupal 5, which also represented a huge gain in contrast to the previous major release, Drupal 4.7.
In this chapter, you will become acquainted with exactly what changed with the presentation of the Drupal 6 release, and some of the underlying principles guiding Drupal development as it has progressed from one Drupal release to the next, including Drupal 7. A Drupal 7 feature list will be presented, and the architectural style of this release will be analyzed. The battle plans of the various contributed module authors will be reviewed. Finally, you will gain hands-on experience installing Drupal 7 and look toward a minimalist implementation for the On-Line Literary Workshop.
The goal of this chapter is to comply with the tasks and user stories outlined in the Deployment phase of our project plan... more
The goal of this chapter is to comply with the tasks and user stories outlined in the Deployment phase of our project plan. The best way to deploy a website application based on Drupal is by creating an installation profile, and by leveraging the Advanced Help module for context-sensitive help and training.
In the case of the On-Line Literary Workshop, the project you have been building by working your way through this book, I have actually created a downloadable installation profile on the Drupal site, as a way of giving back to the community, so that others may use and help improve the project, and, as always, as a way of obtaining feedback from the community on actual use and thereby enhance quality.
In this chapter, you will learn how to create an installation profile (a.k.a. distribution profile) for the On-Line Literary Workshop, how to use it as a deployment tool, and how to use the Advanced Help module as a way of providing on-line context-sensitive help for your users.
The Acquia company exists in the best for-profit tradition of the Open Source business model, which is that of providing... more
The Acquia company exists in the best for-profit tradition of the Open Source business model, which is that of providing services paid for by clients built on an Open Source software systemone, that is, published under an Open Source license and available free of charge.
Dries Buytaert, the creator and founder of the Open Source Drupal Community and the founder of the Acquia company, often compares Acquia to Red Hat, as Drupal is to Linux. The rationale here is that Red Hat is a distribution of the freely available Linux operating system, but is not itself freely available since its distribution adds a commercial service in and of itself. And clients have shown that they are willing to pay for that service.
However, I would suggest that the metaphor model might be closer to the following: Acquia is to Drupal as Canonical (the commercial sponsor of Ubuntu) is to Debian, because Acquia Drupal is still provided free of charge under the GPL license, as is the regular vanilla Drupal tarball distribution you can download from the Drupal site itself, which you have been working with in this book. What Acquia provides are the following services:
Packaging via software integration for the Drupal core and third-party modules
Integration of the Drupal core with selected third-party modules, based on best practices and tested procedures
Integration with Mollom, an anti-spam service
Monitoring via the Acquia Network
Support
First, Drupal is methodically integrated with a hand-picked collection of powerful modules that can be trusted as the bedrock for Enterprise-ready website applications. One of these modules connects your installed Acquia Drupal website to Mollom, an anti-spam service akin to Akismet. Your website is also monitored on the Acquia Network to check that your website is up and running (Heartbeat service) and to see if any files have been changed (i.e., by an intruder). And finally, you have access to first-class support, something that can let you rest easy as problems arise in the course of the website application life cycle.
As a software engineer, this means having that feeling of safe component reuse from the very start.
Purchase Before purchasing this product, please be sure you have met all software and system requirements, and that you understand any limits placed upon its use.
Return Policy Wrox Chapters on Demand are non-returnable and non-refundable.
Watermarking Wrox Chapters on Demand are sold with a small unique watermark at the bottom of each page identifying the purchaser name, email address, and order number.
Reader Software Wrox Chapters on Demand are offered as PDFs, and they can be viewed using the Adobe Reader, ADE, or a compatible PDF reader. If you do not have the Reader installed, it can be downloaded for free at Adobe.com.
Test Download As Wrox Chapters on Demand purchases are non-returnable, it is advisable that you test your system and software configurations with a free sample download before you place an order.
Usage Rights for a Wrox Chapters on Demand File Any Wrox Chapters on Demand product you purchase from this site will come with certain restrictions that allow Wiley to protect the copyrights of its products. After you purchase and download this title, you:
If you have any questions about these restrictions or need any further assistance please refer to Technical Support (www.wiley.com/techsupport) or call (877) 762-2974 (8 a.m. - 5 p.m. EST, Monday - Friday).
Related Books