While working on various projects with drupal I realized that there is really no one definitive place which lists the concepts that you need to become familiar with when dealing with drupal. So I decided that I would put them in one place for people who maybe are experienced php developers who are trying to learn to work with drupal for the first time.
The main important components when working with drupal on a serious project are:
-
Pages
A page is a unit that most web developers are most familiar with already. And that is the problem, because when you are creating a website with drupal, the code is not organized in these bite sized chunks. The beauty of the drupal model of work is that drupal separates what you need to write into re-usable chunks of code which can be used on numerous pages, and is not confined to one page in particular.
That being said, there are still instances where pages are used, but not in the same way as in a website you have to program from scratch. Often times pages are used instead as a means to configure areas of drupal, as admin pages etc.
-
Blocks
A block is a small chunk of code which can be placed on the same page as page content, or on a node (which I will explain next). The block is a handy thing because it is easy to put blocks across a large number of pages, and it is also possible to let the admin user configure the visibility of a block based on the user's permission level (called a user role) via the admin interface.
These properties make blocks powerful in that you can put them in almost any configuration on a page, but not care ahead of time what else is on the page. In effect leaving page design to a designer or site admin.
-
Nodes
A node is a very important part of drupal, because it ties in so deeply with the drupal structure. A node is an object in drupal. The node can be displayed and expanded and acted upon by modules. In the drupal module repository there are many modules which will act on nodes allowing for some really cool things.
The node can be a somewhat difficult concept to grasp, but thinking of it as a procedural object which can be acted upon, displayed, filtered, and restricted as a group. So a grouping of these "nodes" (known as a content type) can be exposed to different user roles. This means that if you want a bunch of pages which do the exact same thing you would create a new content type and then the individual nodes would all have the same structure.
-
Theming
Theming is important in drupal as it makes any code which is written and enables the designer to alter the output of that code, by adding tags, markup and css in order to make the website pretty. In this it is important to expose all html to drupal when you are writing it so that a designer can later open up the theme folder and overwrite your theming function adding these ever important tags.
The theming engine in drupal is quite powerful and it is possible to procedurally theme small subsets of a page consistantly on a website by using this theming technique.
-
Modules
A module is where the exciting things happen in drupal. Because as a drupal developer you will want to avoid hacking drupal core as much as possible. This makes upgrading simple and easy, as well as keeping the codebase clean for your modules, making it possible for them all to work together instead of having one module vs. another.
The module system in drupal again is very powerful because of the node structure, and drupal's ability to edit queries which are written in one area of drupal, or written in one module by another.
-
Menu
The menu structure in drupal is also important. This is the area of drupal which exposes certain menu items based on permissions, and also changes based on where you are in your website's tree structure. It is important to use the menu structure on your drupal websites because this structure is much more powerful than doing it by hand. And because of the permission based feature.
-
Testing
Going forward into drupal 7 testing is becoming increasingly important in the drupal community. This testing is becoming a part of the core list of modules, but also it is very helpful even in drupal 5 and drupal 6. Unit testing ensures that if you make changes to your code, that it does not effect the code you have already written.
There has recently been a big push for testing to increase the productivity of coding and reduce the number of errors in the code. Drupal's testing is mostly done with the simpletest module found at http://drupal.org/projects/simpletest.
So this is my broad overview of what concepts a php programmer needs to know when starting to work with drupal. Please let me know if I forgot anything.

Este blog é uma
Este blog é uma representação exata de competências. Eu gosto da sua recomendação. Um grande conceito que reflete os pensamentos do escritor. Consultoria RH
You have put it down very
You have put it down very clearly. I can now understand how drupal is and how the themes are made. This is a very informative and helpful post. .
Mountain Trails Summerlin
Drupal has developed a very
Drupal has developed a very good platform for the PHP developers..I liked it too because I have also started working on the PHP platform..Thanks to drupal it is made easy for me..scholarship class
Drupal will surely help the
Drupal will surely help the PHP platform users ...And that's what good about drupal..Thanks for helping out so much..impact of spam
Decent guide to beginners.
Decent guide to beginners.
Drupal will help to speed
Drupal will help to speed the process of PHP and also it will help to give better results. Thanks for this piece of information. This knowledge was very useful.
fantasy football draft analyzer
great post
great post Josh
http://www.realnioxinreviews.com
Life is movement. Only a lot
Life is movement. Only a lot of movement,the body's various functions in order to get the
most play. Therefore, apart from our daily busy, do not forget to exercise movement, can
only be good.Burberry hobo bags
Drupal is new to me. Thks
Drupal is new to me. Thks for the information shared. Much appreciate!
http://flyingshark.net
thanks for the short
thanks for the short tutorial
http://newiphone2011.org
excellent article thank
excellent article thank you.
best,
jeux de tracteur
Great advice, thanks.
Great advice, thanks. http://www.quickbooksadvisor.info
It's great to note the
It's great to note the combination of powerful cms drupal to php. I've found the lesson very helpful to understand the functions of all the components for a php developer. thanks.
Whether you are an
Whether you are an individual or a nonprofit, you need drupal as excellent cms platform and it is wise to get up to speed with drupal from php developer background. Thanks for nice idea.
A bit of effort spent in
A bit of effort spent in choosing the company that best fits your Drupal needs gives you the advantage of acquiring the best of the Drupal features, as one of the leading content management solutions. While choosing the Drupal Company you need to be very clear about exactly what services you would like to avail from them.
How interesting it is to get
How interesting it is to get up to speed with drupal from php developer background. I am glad to go through the excellent tutorial about the subject. It is a very comprehensive article. thanks for sharing.
It is a very helpful
It is a very helpful tutorial for a php developer working with drupal. I appreciate the article on the important concepts a php programmer needs to know when starting to work with drupal. Thanks.
If you are working with
If you are working with Drupal, you would find the discussion very helpful and interesting. The main important components have nicely been explained as you need to know when working with drupal on a serious projects. It is a valuable discussion.
I am extremely glad to learn
I am extremely glad to learn about role of PHP in drupal projects. It is nice to get up to speed with drupal from a php developer background. I appreciate the hard work for the successful post.
Thanks for such a good post.
Thanks for such a good post.
The article is really
The article is really awesome, and I got lots of valuable information from the article, it’s really very helpful for the visitors.
Thanks for such a good
Thanks for such a good post.
Drupal Consulting
omMyPW Thank you for the
omMyPW Thank you for the material. Do you mind if I posted it in her blog, of course, with reference to your site?
I’m thinking to hire Web
I’m thinking to hire Web content management system consultants to help improve the quality and revenue of my website, but first of all I’m trying to improve my own understanding of the basics and this has been an extremely helpful guide thank you.
thank u ***
thank u ***
thanks!!!! i am using our
thanks!!!! i am using our tip for our powered drupal site at www.imserba.com
Nice post. Subahs Chandra
Nice post.
Subahs Chandra Poudel.
JustTechnika.com
I am planning to transfer to
I am planning to transfer to drupal and use it now. I have some work on it going on and now customizing some themes.
And your book will help alot
I am using Rosehost Web Hosting and its a very good host for drupal sites. haven't got any problems with them
Thank you, it's really a
Thank you, it's really a good article.
Thanks for that. I will get
Thanks for that. I will get our developement team at http://compareaway.com to have a look at this as we use php and I want to make sure that they are up to speed on this.
Post new comment