Drupal Theming: Best to build a theme from scratch or use Genesis (or similar) as a foundation? - css

I'm developing a web site for a further education college in the UK, using Drupal (6.19). The site won't contain a huge volume of content and the structure is fairly simple.
I understand HTML and I have an reasonable understanding of PHP, SQL and CSS. I've created a sub-theme based on Genesis, but I'm feeling a bit out of my depth.
In your opinion, based on my level of skill, is it best to create a theme from scratch, or should I continue to develop my Genesis sub-theme?
Thanks,
Mike

As a general rule it makes sense to build on top of a starter theme such as Zen, ninesixty, or genesis. Those themes provide considerable functionality that is not worth rewriting. I'm not that familiar with genesis, but the other two provide a CSS reset, skiplinks to navigation for accessibility, SEO-sensitive content ordering, inline edit controls, and much more. Also, as with any piece of Drupal, when problems are discovered and corrected, you can update the base of your subtheme and get the fixes for free. Unless you have specific requirements that can't be met by subtheming, I recommend using a base theme.

Related

What are the limitations to customizing a free Wordpress theme?

I have been asked to create an eCommerce website for a client on a strict budget. I figured using WordPress would be my best bet in this case. I am new to both WordPress and developing an eCommerce/online store. I intended on designing and developing my own bespoke theme for the client, however their limited budget does not accommodate the fee I quoted for designing and developing a bespoke theme. Therefore, I thought that a free theme would be the most suitable option in working within the constraints of the budget.
My questions regarding using the free theme are:
What are the limitations to using a free pre-made theme in terms of its styling, look and layout (structure)? For example, could I easily move the logo or other elements and graphics to elsewhere on the same page if I wanted or I am stuck with having those items wherever they are originally placed? In other words, what flexibility do I get in changing the design?
How 'unique' could I expect it to look with some customization?
What are the limitations on features and functionality?
Would I get more design flexibility with a premium theme instead?
There are pretty much no limitations.
You can make a child theme out of the free theme, then you can customise the css and php files which make up that theme, as much as you like. That will allow you to do everything you mention in point 1. See http://codex.wordpress.org/Child_Themes for details.
Wordpress provides a simple web interface that allows you to view and edit the files, or you can just edit them using your favourite code editor.
The idea with a child theme is that any file which you customize overrides the file in the original theme. This means if there are updates to that theme in the future, you can safely download them without wiping out the customisations you've made.
I would recommend you start with something like the twitter bootstrap theme for wordpress, which gives you a neutral design and quite a lot of useful javascript functions. That will help you with point 2 - ensuring uniqueness, as you don't start with something that already has a distinctive look and feel.
re: point 3 - that's the great thing with wordpress. Just add plugins and widgets (or even develop your own). There really are no limits.
To answer point 4: Premium themes typically provide more sophistication in terms of design features and add-ins like scrollers, slideshows and shortcodes. Sometimes they also provide customised interfaces that allow limited customisation such as colour schemes and page layout, but essentially the wordpress interface for customisation is the same, whether you've paid for the theme or not.

What's the difference between a template framework" and a starter theme/template?

This is a serious question, specifically relating to the many frameworks out there for Wordpress and Joomla - Warp, T3, Gantry etc. What I dont understand is how they are different to a starter template and what exactly you are supposed to do with them - simply child theme them or is it a whole other codex to learn? I mean, all of the native codex is there with Joomla and WP anyway to construct a theme simple enough so what good does a whole proprietary app do between your design and the CMS? Are they faster to develop with?
What confuses me is that people seem to love them and claim that they make life easier but I dont get how adding another technology to learn can make things easier. Like I say, it is a serious question, not one for effect to make a point.
Can anybody define the difference between a framework and a starter template? I ask in part because I am one of those anxious developers who always feels like I am somehow missing a trick or doing things the "wrong" way - what am I missing?
This is definitely mostly an issue of definition, and I can guarantee that some cases will not follow what I outline below. Obviously, anyone is free to call the template/framework by whatever they want.
Generally though, a template is comprised of basic HTML and CSS that works with the platform (Wordpress, Joomla, etc) that is used to build the output to the page. In Wordpress, this contains the loop and other constructs to get all the content for the page. In Joomla, it outlines all the module positions available and such.
Typically when you purchase a higher end theme, you will have significant choices on the backend to customize the theme without having to actually code. These parameters let you typically change colors and such.
Some of the theme developers and others have taken this parameter settings system to the next level and made it into a framework. In all the cases that I've seen, "framework" is really the basis for the template parameter system. In this way, you can have consistency between different themes and expect the same settings and features between different themes. This is why they use a different word, because it really isn't a "theme" any more. It really is like a "theme engine" in that it is a backend system for changing things in the theme.
Yes, many platforms offer some basic options for editing the theme out of the box, so in most cases, the framework is really an improvement on the base platform's theme engine.
It's been my experience that a theme will be a visual style along with a set of theme options available in the admin (in addition to Customize if it's supported).
Theme Frameworks on the other hand, like Thesis, are installed just like a theme but have a very vanilla visual style that you build your theme on top of. Usually the framework provides many added features that aren't available in WP core.
tl;dr - Themes frameworks aren't installed and used right away, they are installed and built upon to deliver a site.

Should the designer also have to know Drupal if the developer knows already?

I am working in Drupal. My friend is a designer and he does not know Drupal. If he designs in the usual way and then I convert his traditional HTML into Drupal then will that work? Or does he have to know Drupal also?
One of you will need to learn at least the basics of Drupal theming; however, most any design can be adapted to be a Drupal theme. I've adapted plenty of basic HTML themes, WordPress themes, Joomla themes, and others into Drupal themes.
The more experimental or cutting edge the design, the more effort it will take to make it work with Drupal. For instance, Mega Menus are not easy to implement in Drupal because of the way Drupal's menu system works.
Apart from avoiding stuff like Flash, the designer doesn't need to know a lot about Drupal. I've taken numerous designs from non-Drupal designers, and they tend to fall into two categories.
HTML designs. These tend to be the easiest by just turning a bog standard HTML file into a tpl file and replacing the content with print statements for Drupal regions and other bits. There can be some work needed for thing actual content, but the basics can usually be done in a couple of hours.
Photoshop designs. In this case the designer knows little about web design, but knows how to draw pretty pictures. As long as the designer puts everything on separate layers, these can work well. I start with the Zen theme, slice up the Photoshop file, and insert the graphics and add colours to the CSS. Generally more work than 1, but I can usually produce a basic theme in about a day.
Of course, the less the designer knows about Drupal, the more expert the developer needs to be.
Totally not. I (as the Drupal developer) have worked with someone who had CSS/HTML chops like few others ( not just wrote books on it but actually knew what he is doing :) ) he gave me HTML and I made Drupal emit that HTML.
Drupal is very flexible. If the person implementing the theme is relatively acquainted with the Drupal theming system, the designer should not need to know a great deal about Drupal. The vast majority of designs can be implemented effectively with the Drupal theming system.
It is best if he works with a starter theme such as Zen http://drupal.org/project/zen
Zen is very easy to build with for designers, and they do not need to know much about Drupal to work with it. When they are finished, they will have a theme that works with any Drupal install.
In answer to your question then, the answer is no.
I think you should give him a short run-down so he understands how Drupal works, so he can assure his designs don't 'fight' with the undelying framework. But I don't think he needs to know how it's done step by step (it wouldn't hurt though, is my guess).

Multi-Site Drupal, theme structuring and Zen theme

Thing I plan to do is to make many websites based on Drupal core.
All of these websites will be quite small, but there will be many of them (in matter of hundreds).
I'm working on this with one HTML / CSS coder, guy who should make themes for every website we make.
He doesn't know much of a PHP (enough for PHPTemplateEngine tho) therefor I what I want is to make as little interaction between me and him as possible. He shouldn't touch PHP part of themes, I shouldn't touch HTML part of themes.
My question is:
Can you tell me what structure of theme folder should I use, what's your opinion of Zen theme for beginning of Drupal theming and how can I make automatic JavaScript and CSS loading script for themes?
Also I'd greatly appreciate any tips concerning multi-site Drupal setup, best practices and so on.
Thanks in advance.
With regards to drupal theming you have a couple of options:
If all the themes will share 98% of the same code base and just have different classes etc to style it visually different (say a different heading colour), then you can get away with one drupal theme and use theme settings to alter the configuration of the theme on each site. This has the advantage of having to maintain only one code base. Zen can still be used as a base theme if you wish
Another option is one you have mentioned above, in which you have a base theme which declares all inherited code, and sub themes to which override specific parts of the base theme to create the necessary effects. I would suggest that this is the better option if your themes vary wildly from one site to another. There is a administrative burden with this option though, as say you have 100 sites, you could potentially have 100 sub-themes to maintain and provide fixes for.

Is the Zen theme for Drupal enterprise ready?

I'm starting a build of a Drupal based online store, using Ubercart etc. It is likely my client will turn over a lot of sales on the site, so it must be secure.
Of course I will want to create a unique theme for this, so is Zen a good place to start or should I avoid it and start from scratch?
Quote:
Zen is the ultimate starting theme for Drupal. If you are building your own standards-compliant theme, you will find it much easier to start with Zen than to start with Garland or Bluemarine
The Zen theme is designed to do some of the basic setup for you, in terms of creating a content-first layout, and building some commonly needed variables for you. If you're starting with an existing XHTML design and want to convert it to Drupal, you may be better off skipping zen and building a theme from scratch.
Zen is idiosyncratic and has its own pros and cons, a bit like using a CSS framework. Security is less of a concern than the additional conceptual complexity that it adds to Drupal theming. It's a useful power tool if you're used to it and are cranking out themes, otherwise it can add confusion. Security, though, isn't a concern: it's good on that front.
This is the most complete/brilliant review of the starter themes to date:
http://www.chapterthree.com/blog/review-drupal-6-starter-themes
It came into existence before http://drupal.org/project/studio so consider studio in addition to those.
That said, whenever I have a choice I choose Zen.
In my experience yes, it's easier to start with some basic template that has all required stuff in place (rather than starting from scratch). Zen is as simple as it gets with Drupal.
I found framework theme much better and simpler .
Zen theme is more like library for developing theme.

Resources