Workflow improvements
- Printer-friendly version
- Add new comment
- 377 reads
Until now I used a clone of the latest website I made to create a new website, which is quit straightforward. When I develop new functionalities, I always take care ten times it's as much as possible universal applicable. But, but ... as I am going through the phase from being a web amateur to being able to actually make my living out of it, I'm forced to think twice how I want to continue. Let's look at some (dis-)advantages of the way I work now, and the best way to continue (I'm aware of the existence of install profiles, distributions, features, Devel, Drush, migrating modules and so on).
Disadvantages of using a cloned website:
- Old content pollution. I still find images and posts meant for the dentist in the sites of today. The same counts for Views you might never use in the new setup. Or you copy just too many modules to the other side, creating unnecessary overhead.
- Hanging onto old functionalities because they work, but meanwhile new features don't come up. Only recently I went from FCK to CK-editor, I still use the Feed API module instead of the newer Feeds. Sometimes you have to. I still use Views2 because some related modules I use are not updated yet.
- Using not the latest versions of modules. Sometimes you find out the latest is not always the best though. I use Pathauto 1.3 because newer versions (including 2.x) don't work in a multilingual setup (with my clients always the case).
Advantages of using a cloned website:
- Making a new site on the same server as the clone means you can just drag and drop modules, plugins, libraries or images with the FileManager of your cPanel. Even with Drush it doesn't go quicker than that. And if you patched or modified something, you don't have to repeat it. I know I shouldn't modify modules, but it happens anyway (even core, sorry!). Don't forget to hold the CTRL button down while you Drag'nDrop.
- It just works. Sometimes you have to create a new API key, but besides of that I have not even encountered problems with a single path. Even update.php should not be necessary to run.
- In practice it turns out that the "system" is quit forgiving. That forgotten to copy module does not break your site, but just blanks a functionality you had before. Not a big deal.
I will still use the cloning system if the new to build website is on the same server as my latest website (with my clients is almost always the case). I still don't have clients with 10K+ page views a day. I can put about ten sites on a single hosting account but still haven't ran in any limitations. Using custom installation profiles (or distributions) for this purpose is just to cumbersome.
But, but...I might consider using a specially purpose clone site just with the necessary modules. We all know that at least half of the modules you use are always the same on each single new site. Some with slightly different setting, but many with the exact same configuration every time. This specially maintained clone site will have some example content that's easy to erase (maybe even tagged as such). E.g. to represent users I use the characters of Shaun the Sheep, so my client initially gets depicted as "Leader of the Flock". The best CC licensed Flickr pictures to make the showcase of a gallery (good quality photos make a sample site look better). Yeah, that's right. It can be a sample site as well, with all the latest features.
This clone site should be kept clean (only demonstration content) and updated. With updated I mean not only the latest version of Drupal and his modules, but also new interesting functionalities from the latest built real website that are "universal" applicable, ported back to the clone.
On your clone you have time do do things you wouldn't do when you're under the time pressure of a deadline of a real site. A good example is the elimination of modules. Yes, you heard it right. With time you find more and more interesting modules, but too many of them make your site run slow. If you want to keep the functionalities you discovered, but don't want the overhead of too many modules, you can see if you can substitute them with the following methods:
- If you can code a bit, using the Views Custom Fields module can create you a Facebook share button without using an additional module (see example). In Panels you can use the already integrated Custom content to obtain the same (see example). Rely on modules that offer a broad applicability like Views and Panels. Using those creative can cut for sure some of your other modules.
- Putting some code in your page.tpl.php or other theme templates can repeat the same code on several pages, like e.g. tracking code for third party analytics. No need of modules for that. Integrated in the theme it's more likely it get's cached right.
- Think over every module you use and see if it's really so indispensable. Of course it's nice to notify users they should update their IE6 browser, but it's only necessary if viewing your site has major issues with it. Or again, you could simply use a block with some simple php code. Light and more flexible. It takes you some time, but doing it in your clone you do it only once
- After a new site is up and running , disactivate the UI's from the development like Devel, Views UI, Panels UI, image cache UI, etc.
Then there are the modules that you don't put in each website, but still in some of them. If they consist of a series of modules working together with many different setting I will investigate the use of the Features module, which certainly seems like the right way to go.
A good exercise is to group the modules you use (just see the list from your latest site) categories based on functionality. It gives you a better idea which modules go directly in the clone, which are being linked together with Features or used "standalone".
- Image handling and presentation. I'm practically always pulling images in from Flickr and alike and use always Views Gallerifix and Thumbnail Slideshow for different presentation.
- Handling of links. A series of modules just comes in my mind. Link intelligence, linkchecker, external links...
- The same for SEO. Pathauto, Global Redirect, URL redirect, Metatags (Nodewords)...
- Anonymous visitor interaction. Facebook, CAPTCHA, Not So fast, ...
- User interaction logintobogan, Floating menu, Feedback
- Presentation. Cufon, ReadMore, ...
- Admin. Admin menu,
...and so on.
Other things on my To Do list:
DEARDIVEBUDDY.COM:
- Upgrade from Drupal 5 to 7
- More modern theme
- CK-editor is indispensable. I'm considering the Homebox module as well (custom layout per user) but we still wait for the D7 version.
Take OG-menu module to 6(somebody else took this burden. Wow!)
SPECIFIC TO DO OR STUDY:
- Online payment methods (they call them Gateways?)
- Shopping cart systems (Ubercart)
- Live webcam solutions
- The "new" Feeds module.
- WYSIWYG instead of CKeditor (still not convinced).
Drush.Roll a patch.Automated backup. Have a look at theBackup and Migratemodule, but alsothis.- Generate and commit .po files (POedit). Can try on the IE6 No more module.
- Make a screencast. Takes about the same time or less as writing a quality article but you can show so much more. And hey, be honest, what do you prefer? Reading or watching. We are lazy by nature. Remember only the title of a video gets indexed by the search engines. I found out I already have Camtasia installed on my computer which looks right to do the job. First subject: Image mapping.
Check out the several CSS editors available. I tried Stylizer 5 and did like it.
"MISSING" MODULES OR MISSING MODULE FUNCTIONALITY:
Who knows, maybe one day, between one client project and another, I can write patches or modules for the following (wishful thinking):
- The WebSnapr field module is nice but the Websnapr service stores the thumbnails for a limited period, after which they have to be fetched again. This results in an annoying default thumbnail to be shown. Can we let cron visit the links in batch, bit by bit. Or is it possible to store the thumbnails locally? Ideal for a patch without taking the burden to maintain a module. Update: I should have a look at the new Imagecache External module. Maybe a "bridge" between the two?
Any suggestions? Please leave a comment.




ttesstt