Good beginners material/advice on Drupal

2019-02-02 16:34发布

问题:

I'm learning Drupal and whould like to ask you about some good material for a beginner on this subject. Any book, website or article is welcome.

I whould like to hear to any good advice for someone like me, which is just starting to know Drupal and CMSs in general.

Currently, I'm using as my basic source the official website of the project.

回答1:

You can use Drupal for a lot of things and in a lot of ways, so it's hard to say which is the best for you.

If your aim is to use Drupal as a developer, I would say that you should use/get:

  1. Pro Drupal Development, this was probably the single biggest help for me to learn how to develop with Drupal.
  2. The Drupal API, to become a good developer, you must learn how to use the API. Drupal has a good online resource, where you can look up functions, view their source, see comments from other developers and more.

If you want to learn how to make Drupal look pretty, what we call to theme drupal you should:

  1. Learn how to use starter themes a good place to start is the zen theme
  2. Front End Drupal is an excellent book, and from it you can learn quite a bit about Drupal theming.
  3. The theme guide on drupal.org is the official drupal resource for themers.

If you just want to learn how to use the CMS as an administration:

  1. Using Drupal by the lullabot team is a great place to start. It will take you through the most basic things, and show what you can do with drupal without coding.
  2. Lullabot.com is a good place for any drupal resource really, but they focus mostly on teaching stuff on different techniques for the most known modules.


回答2:

To Learn Drupal, videos will prove to be your best friend. Its have been quite a time since I am using Drupal for site building, I find these videos very useful. Here is the list of some websites, which you should add to Favorites Bar.

  1. http://www.lullabot.com/
  2. http://gotdrupal.com/
  3. http://mydrupal.com/drupal-beginner-videos-basics
  4. http://usingdrupal.com/
  5. www.drupaltutorials.org

If you use Twitter, You can contact these people for your drupal Queries.

Happy Drupaling :)



回答3:

If you are a coder already one way to learn is to fix bugs. Have a look at the novice issue queue. Fixing bugs will make you learn how parts of the system interact and work. It may not be the easiest way to learn but it will give you a deep understanding in the end.

As a bonus you will improve Drupal and get to know (and get known by) people in the community.



回答4:

I started with this book on Drupal administration: Drupal 6: Site builders solutions . I liked it and from there I moved on to the following books for module development and advanced usage:

  • Building powerful robust sites using Drupal
  • Using Drupal
  • Pro Drupal development

All 3 books have a good mix of module development, the theme layer and the API.



回答5:

Check out Learn Drupal CMS.



回答6:

Learn By The Drop has a lot of good screencasts, if you're into that. Here's the archive.



回答7:

I started learning Drupal myself about a year ago. I had only been programming for a few months and had no PHP experience. I knew some js/jQuery so that was my only knowledge of the PHP syntax. I now work as a Drupal consultant, and the 3 major reasons why I was able to learn Drupal so quick was:

  1. Pro Drupal Development. This book is absolutely great, if you want to develop with drupal. If you just want to make a few tweaks here and there, this will be a bit overkill. But for a developer, this is probably the best book you can buy.
  2. Working on real projects. You can read all the books in the world, see screen casts etc, but it needs to be tested and tried. Facing those problem and finding a way to solve them, will force you to learn parts of Drupal you didn't know existed.
  3. Code review. As a novice and even an expert too, we sometime solve problems in a poor way. Having peers, if possible experts review your code and give you feedback, is a great tool. It will show you both, what you did will and what could and should be improved. Drupal is a very customizable machine and you can do a lot things in many different ways. But being a developer, you don't just want to find a way, but the way.


回答8:

I got started with Drupal using Lullabot videos. Beats the heck out of reading textbooks.

Videos are great and the quickest for learning the basics of Drupal. Once you are familiar with the platform read textbook others have mentioned: Using Drupal and Pro Drupal Development.



回答9:

I agree with Yada: to get you up and running fast, the Lullabot videos provide fantastic context. Their Understanding Drupal video is a great primer. Bit expensive at $30, but will save you a lot of headscratching.

Once you get the general concepts and jargon, the Mustardseed video podcasts are invaluable (and entertaining, somehow!).



回答10:

Well I will advice the following for core understanding of Drupal

  • drupal.org documentation (read about Drupal Api)
  • drupalize.me
  • lullabot.com

Hope it helps



回答11:

As all above are true and many ways to learn Drupal, I would like to suggest beginners can learn Drupal from Video Tutorials addition to above links user can learn from Code Karate : http://codekarate.com/

And use Examples modules by installing Drupal setup as per your requirement (like D6,D7 or D8). It has good set of practice examples to proceed with your way.

User can refer Drupal.org themeing documentation, API Documentation, use IRC chat for quick queries.



回答12:

Part 1 - What are the prereqs to start?

0. HTML, PHP, JS, CSS knowledge

If you already know HTML, PHP, JS, CSS, etc it will for sure help to get you going with Drupal.

But in my experience those skills are not the most important ones to get up to speed with Drupal. You can learn about them "on the fly (on the job?)". Specific to PHP, in the context of Drupal, you only need to know a subset of all the things you can do with PHP.

1. Required Infrastructure

  • Obviously you need a computer, and (at least occasionally) a working internet connection and an eMail ID. At least to download Drupal, contributed modules, etc to your own computer.

  • Later on, when you have a website that is ready to be shown to the world, you'll also need:

    • some hosting provider to host that Drupal site.
    • a domain name (DNS registration).
  • To actually be able to use a Drupal website on your own computer, you'll need the typical softwares that are like pre-requisites for Drupal. Here is a list of those so called 'stacks' (often referred to as WAMP, MAMP or LAMP also):

    • an operating system for your computer (Windows, Mac or the free Linux).
    • a web server (like the free Apache, ...).
    • a DBMS (like the free MySQL).
    • PHP (no other languages here, but ... free).
  • Some typical utility programs, such as:

    • something to unpack files in an archive format such as a .tar or .zip, since Drupal and its contributed modules are downloaded in these formats.
    • an text editor (like notepad, notepad++, your favorite editor, etc).
    • an FTP client, such as FileZilla (to upload your site frm your local environment to a live server)
  • Setting up the required pre-requisites (as in the previous bullet) can be a bit of work (and/or a challenge). However there are some great packages available to reduce the required effort (and required skills) quite a lot, such as (pick whatever option you prefer and/or fits for you, incomplete list!):

    • VirtualBox combined with QuickStart (bonus: comes with GIT, Drush, etc pre-installed).
    • XAMPP.

Part 2 - How could a training program look like?

2. Climb the Drupal ladder

When I'm asked the question about how to get started with Drupal, I always point to Climbing the Drupal ladder (from famous Dries ...). It's only 1 diagram, but there is so much information and value in it (a picture is worth more then 1000 words ...).

It's a great outline to be used during a "Getting started with Drupal" session. Anybody who's a bit familiar with Drupal should be able to explain most of the items mentioned on it also.

There are also these variations of it:

  • The DrupalLadder.org website, which contains (or links to) lessons and materials to help people learn about Drupal and contribute to Drupal. The site helps Drupal user groups develop and share and develop materials for learn sprints and issue sprints.

  • Drupal Ladder installation profile (alfa version only, and missing some security updates ...).

3. Get familiar with contributed modules and themes

These days, there are around 17K contributed modules and/or themes. There are tons (thousands ...) of great modules/themes, and a lot of hidden gems. So think twice (or 3 times?) before diving into writing custom modules/themes. Ask yourself the question "Who will maintain them in say a few years from now?".

However, quite often you'll run into more then just 1 contributed module or theme. Here is a sample: Which contributed module should you use to create a chart in Drupal? ... Make your choice, e.g via the Comparison of charting modules. But which module would you go for if you are looking for:

  • an image gallery, as in this question: Advise a Drupal Image gallery module with an option to put text nearby the image (for medical atlas)
  • a slideshow, as in this question: Slide through nodes from the same content-type?
  • a responsive theme?

That's when you'll need to have some criteria in place for selecting the most appropriate one, as illustrated in the "Maintenance scorecards" also (you can use them for many other Drupal topics, so not only just for charts).

4. Views / Flag / Rules / Message

It's rare to find sites that don't use the (amazing) Views module, which however isn't obvious to get started with (there is so much to learn about it). I learned a lot about this module via the great, and free, set of 30 video tutorials about the Views module.

Combined with the Flag, Rules and Message modules, a lot of site functionality can be delivered already. To get started with Rules, checkout the 32 (!!!) great, and free, video tutorials Learn the Rules framework, organized in 7 chapters. There is a similar set of 8 video tutorials about the Flag module.

So make sure to have a good knowledge/understanding of all the amazing things you can do with only those "magic 4", in virtually any site. A few samples:

  • How can I allow anonymous visitors to submit content?
  • How to implement a nomination process for nodes?
  • How to change fields permission using some action in the Rules module?
  • Redirect after login for specific role on specific day using Rule.
  • How to publish nodes 3 times a day?
  • Content access based on the content author's role.
  • How to change my homepage based on the time of day?

5. Study available documentation

Documentation about Drupal and many of the contributed modules is available in various formats, such as:

  • The Readme.txt file that comes with contributed modules.
  • The Community documentation available for many modules, which can typically be found via the "Read documentation" link on a module's project page (not all modules have one however, though they should).
  • The Advanced Help documentation that comes with selected modules, and which you can access from within your site if you have the Advanced Help module installed.
  • The impressive set of (great) questions and (great) answers at Drupal Answers.

6. Learn to use the issue queue(s) on Drupal.org.

Each contributed module on Drupal.org has a "project page" located at something like https://www.drupal.org/project/issues/abc, whereas abc is the "namespace" of the module (not always exactly the same as the title of the project page). Multiple links to its corresponding "Issue queue" can be found on the project page, or just use an URL like https://www.drupal.org/project/issues/abc.

The issue queue (search results of issues) offers various search features and/or filters. Even if you're not "searching" for a specific issue, but just browsing around in these issues, you can learn a lot by reviewing these issues. Often times there is important (crucial) information contained in "some" issue that didn't make it (yet) to the documentation related to the module.

In my case, when I first started using Forena, I kept iterating over its issue queue, and occasionally posted new issues.

As a module (co-)maintainer, I try to point module users to such interesting issues, via a list of 'issues' mentioned (hyperlinked) in these Community documentation pages: Charts HowTos, Forena HowTos, Chart HowTos. Note: later on I started adding similar links to interesting question on Drupal.SE also ...

7. Learn from podcasts about Drupal

There are some interesting podcasts dedicated to Drupal, which also have a great website with all sorts of hyperlinks to topics covered in each of them. Though there are quite a few, here are my favorite ones (+ links to answers about topics I learned about via them):

  • Talking Drupal

    Example: How can I make a gallery of “boxes” of content consisting of an image and some text?

  • Drupal Easy

    Example: Can I move distribution profile modules from profile folder to sites/all/modules?

FYI: I "learn from these podcasts" (+ get ideas) while ... walking my dog. You could do so too while commuting, exercising, etc.

8. Learn about Drush

Learn to walk before you want to try to fly ... So start building / maintaining Drupal sites using the typical Admin interface (UI). Such as:

  • install/enable modules.
  • clearing the cache(s).
  • updating site information.
  • typical modules you keep using in most of the sites you build.
  • etc.

However, when you feel you have enough experience, and start to know and understand Drupal well enough, you should invest in learning about Drush. After you do, you'll wonder "How could I do work in Drupal without Drush?". For each of the bullets above (and many more bullets), there is a way to do it with Drush.

9. Learn about GIT

A Drupal site mostly consist of 2 major parts: a database (typically in MySQL), and code (mostly PHP, also JavaScript, CSS, etc). Drupal core, it's contributed modules, and also custom modules are all in "code". Git is used for the "Software Change Management" (SCM) part of that code.

It is highly recommended to start using GIT "as soon as you can" (after you do, you'll wonder "how would I do work in Drupal without it?"). Git is typically used for topics/tasks such as:

  • Building a Drupal site with Git.
  • Sharing code between developers, and for maintaining modules on Drupal.org.

Part 3 - How to gain more experience?

10. Pick an area to grow

Drupal is big, actually huge. Nobody (even not Dries) can do/know everything in Drupal. So try to find an area (or a few areas) you're interested in. If you can, look for something you also have experience with already in other (none-Drupal) domains already.

In my case it was (is) Software Change Management and also Business Intelligence (reporting). That's what explains the contributed modules I'm now 'involved' in (Charting, Reporting, etc) ... and my interest in the upcoming "Configuration Management Initiative".

11. Learn from experience ... and mistakes

Another important aspect to come up to speed with Drupal, is that you have time to learn "from experience", and "from making mistakes". Starting as a site builder seems the most obvious starting point.

From there you can move / evolve into roles like a Drupal Developer (back-end), Drupal Themer (front-end) or Drupal all rounder. That's also what seems to be compliant with recent Drupal certification programs.

Remark: how to get started in any of these roles, seems to be out-of-scope for this question.

12. Get in touch with other Drupal-fans

You must have seen this before: "Come for the software, stay for the community". If not, have you ever visited www.drupal.org? See it in the upper left of the homepage? If you're new to Drupal you probably wonder what that really means. Here are some suggestions to experience it:

  • Participate in Drupal Groups.

  • Join the Drupal community on IRC.

13. ...

This bullet is intentionally left blank ... because of its "number" ... Did you notice the numbering started at 0? ... to compensate for this missing number ...

14. Attend Drupal conferences and meetings

Meeting in person with other Drupal peers takes more effort (and is more expensive), but you will get a lot in return. Here are some options to pick from:

  • Attend Drupal Cons, these are big conferences, about 1 in every continent every year, relatively expensive (travel, hotel, registration). Common language is English (though there are exceptions like in Latin America I believe it's in Spanish). There is Barcelona, sept 21-25, 2015, Dublin (2016), Vienna (2017), .... If you can't make it (or missed some of the sessions while there and busy doing networking, etc.), go find the videos about dozens of sessions.

  • Attend Drupal Camps, which are more local and (way) smaller. They are typically by country and/or state, in your own language.

  • Attend Drupal Sprints, where you wil not only be contributing (= giving back to the community), but where you will find others willing to help, guide and mentor you where needed.

Part 4 - How to target the golden cradle?

15. Don't wait for George, just be like George

George@Drupal.org was (at least to me) first introduced at DrupalCon 2014 in Amsterdam during the Keynote (from Dries) (on slide 76/198). Review those slides, and watch the movie to understand what that George is all about.

Then stop "waiting for George", and instead start acting like George. Even if it's something challenging (difficult, major effort, etc). When you're done, you'll for sure have learned something, and probably AlotMORE ...

If you're looking for inspiration about what could be good examples of this, then stop wondering "When will D8 be released?". And instead, "Get involved in contributing to the release of D8" .... And continu using D7 for building websites until D8 is ready (and mature enough).

16. Start contributing as a novice

Apart from what's detailed in the Novice code contribution guide (which is about creating patches to contribute "code" to Drupal), there is also a lot of community documentation that needs work, and can be done by novice users (typically tagged with "novice").

Same for modules that need better/more documentation. That's actually how I got 'promoted' from being a Drupal user/admin to becoming a module co-maintainer and module owner. Refer to HELP Reports reorganization (which is 'just' 1 issue ...) for an illustration of how I got started in doing so.

Such contributions will help to "Build your reputation", and might resolve the chicken/egg issue to get started with Drupal (most jobs in Drupal require knowledge / experience in specific Drupal areas).

17. Learn to manage Drupal configuration

Any Drupal site consist of 2 major parts:

  • Code downloaded from Drupal.org, such as Drupal core and contributed modules or custom modules.

  • Configuration which is stored in the Drupal database (typically anything you do using the Drupal administration screens).

Managing code (such as migrating or synching between 2 or more environments) is relatively easy. All sorts of tools (such as GIT, etc) are available to actually do so.

However you also need to manage the configuration of a Drupal site. A site without any configuration is like a site for which you have not even ran the install.php script. Here are some examples of what configuration is about:

  • As soon as you start running the install.php script, you start entering configuration data about your Drupal site (Site name, site slogan, etc.).
  • Anything to content types, permissions, roles, rules, users, taxonomies, filters, custom views, etc. (none of this is stored in "code", and you can't just download it from somewhere).
  • Modules and/or themes that are enabled (just unpacking a contributed module that you download from Drupal.org will not enable it).
  • Options to configure specific modules and/or themes.

So whenever something about such configuration items changes, or needs to be migrated to another site, you need to correctly manage (and secure?) all this. Otherwise there is a chance that (parts of) your site breaks.

That's why at first these kinds of contributed modules were introduced:

  • The Features module.
  • The Configuration management module.

Even though those modules add a lot of value in the area of managing configuration, they also have weaknesses. That's why the Configuration Management Initiative (=CMI) was introduced. CMI is planned to be released as part of Drupal 8.

Part 5 - Appendix

The above list is incomplete (still ...). Other topics that might be added here:

  • How could a training program look like?

    • Become familiar with other modules, at least with the ones with a high ranking, but also search for hidden gems.
    • Learn about contributed modules to display content, such as Display Suite and/or Panels. Then check if you can answer questions such as "Panels Mini-Panels vs Block Regions vs Display Suite vs Stylizer vs Page Manager vs Theme". A great resource for learning about Panels is the (free) video training about Learn Page manager. Panels uses 'Page manager', which is one of the sub-modules of Chaos tool suite (ctools).
    • Become familiar with building multilanguage sites (using i18n).
    • Learn about using "Base themes", such as Zen, Omega or Bootstrap (most of them support HTML5, are responsive, have a lot of configuration options, etc). And also explore the various "Sub-themes" related to them (also available for download from Drupal.org).
    • Increase some of your technical skills such as SQL and Regular Expressions.
    • Review and learn from dissecting Drupal distributions.
  • How to gain more experience?

    • Find a Drupal mentor (+ accept invites from others to become theirs ...).
    • Chat with the Drupal Community on IRC.
    • Participate in sprints.
    • Learn about Drupal deployments (dev, stage, QA, prod).
  • How to target the golden cradle?

    • Workflow automation.
    • Automated testing.
    • Apply software reuse (Features, drush make, installation profiles, etc).
    • Get ready for D8 (Symphony, Twig, OOP, CMI, server prereqs, ...).


标签: drupal