Jump to Navigation

Scribe Drupal Course

tags:

This is course is an introduction to Drupal. No former knowledge of Drupal or website creation is required. Through six two-hour classes we will create a community video site. The final product should look something like this.

Everyone will be encouraged to setup a local installation using the Acquia installer, wamp, or mamp.

The concepts we will cover will include basic Drupal site architecture, menus, blocks, regions, cck, cck field modules including emfield, views, the Drupal community, core vs. contrib, module evaluation, and more.

Class 1: Intro to Drupal and Site Build Begin

Introductions:

  • Who are we?
  • Goals:
    We will try and build something like:

Theory:

  • Free and Open Source Software basics:

    About Free and Open Source Software

    It goes without saying that the rise of The Internet has led to a number of revolutionary communication technologies, as well as new paradigms in collaboration and organizing. At the forefront of these changes is the Open Source movement, which has led to a networked, or “crowd sourced” model of creating and distributing all sorts of information including encyclopedias and other collective knowledge systems, political campaigns, and publishing. At the forefront of this communications shift has been the rise of Free & Open Source Software (FOSS).

    FOSS has dramatically lowered the costs associated with developing communications platforms and is created and supported through a world-wide community of companies, organizations, and individual developers that come together and collaborate online. Organizations have been drawn to FOSS for a number of reasons other than cost:

    • No “vendor lock-in”: A project built on a massively adopted FOSS project can be maintained or extended by any capable developer familiar with the system; while proprietary software is only maintained and supported by the company that created it. Large FOSS projects, such as Drupal, have hundreds, if not thousands, of capable development shops that can be called upon if necessary.
    • Flexibility: Because every developer has the ability to modify the source code of FOSS software, it is possible (and often easy) to extend or alter the default behaviors of the software. While proprietary software often limits organizations and forces them to work in a certain way, FOSS can be skewed to serve the organization's exact needs.
    • Standing on the cutting edge: Widely adopted FOSS platforms regularly have new features added (by companies or individuals that require some new capability) which are generally, freely available to anyone using that platform. Because of this, FOSS projects remain on the cutting edge of technology.
    • More secure: Because FOSS undergoes vast peer review by tens-of-thousands of developers around the world on a constant basis, security holes are found and fixed quickly. It would be impossible for an organization or company of any size to deploy even a fraction of the brain power that comes to bare on large FOSS projects.
    • Long term viability: FOSS projects are not reliant on the existence of a single company to continue to maintain and extend the code.
    • FOSS values: In the open source world, progressive-minded programmers work together to give themselves (and the world) free, high quality products. Many non-profit, democratic, and volunteer-driven organizations relate to the open source philosophy of improving the world through collaboration and volunteerism and have supported the open source movement with their projects.

    In short, the groups that do not benefit from the FOSS movement are those who work for proprietary software vendors, or those who have a vested interest in the underlying code base (for example .Net programmers) and these are typically the only voices that argue against it.

    Free Software History

    The project to develop the GNU system is called the “GNU Project”. The GNU Project was conceived in 1983 as a way of bringing back the cooperative spirit that prevailed in the computing community in earlier days—to make cooperation possible once again by removing the obstacles to cooperation imposed by the owners of proprietary software.

    In 1971, when Richard Stallman started his career at MIT, he worked in a group which used free software exclusively. Even computer companies often distributed free software. Programmers were free to cooperate with each other, and often did.

    By the 1980s, almost all software was proprietary, which means that it had owners who forbid and prevent cooperation by users. This made the GNU Project necessary.

    Every computer user needs an operating system; if there is no free operating system, then you can't even get started using a computer without resorting to proprietary software. So the first item on the free software agenda obviously had to be a free operating system.

    We decided to make the operating system compatible with Unix because the overall design was already proven and portable, and because compatibility makes it easy for Unix users to switch from Unix to GNU.

    An Unix-like operating system is much more than a kernel; it also includes compilers, editors, text formatters, mail software, and many other things. Thus, writing a whole operating system is a very large job. We started in January 1984. It took many years. The Free Software Foundation was founded in October 1985, initially to raise funds to help develop GNU.

    By 1990 we had either found or written all the major components except one—the kernel. Then Linux, a Unix-like kernel, was developed by Linus Torvalds in 1991 and made free software in 1992. Combining Linux with the almost-complete GNU system resulted in a complete operating system: the GNU/Linux system. Estimates are that tens of millions of people now use GNU/Linux systems, typically via distributions such as Slackware, Debian, Red Hat, and others.

    source: http://www.gnu.org/gnu/gnu-history.html

    source: http://en.wikipedia.org/wiki/Free_and_open_source_software

    GPL License

    The GPL (The GNU General Public License), created by Richard Stallman, serves as the de facto constitution for the Free Software movement. It covers the majority of Free Software/Open Source software and has become the legal and philosophical cornerstone of the Free Software community.

    The key elements of the GPL are that 1) you can use this code however you want, 2) if you redistribute this code you MUST make the source freely available.

    The GPL turns the idea of a license on its head. It says that if you use software that has GPL licensed code in it then if want to redistribute that you have to make the source code available. You can't redistribute it as a 'closed-source' entity. The does not restrict you from selling the software. You can do so as Red Hat does as long as you open the code.

    The distribution rights granted by the GPL for modified versions of the work are not unconditional. When someone distributes a GPL'd work plus their own modifications, the requirements for distributing the whole work cannot be any greater than the requirements that are in the GPL.

    This requirement is known as copyleft. It earns its legal power from the use of copyright on software programs. Because a GPL work is copyrighted, a licensee has no right to redistribute it, not even in modified form (barring fair use), except under the terms of the license.

    Microsoft and others have accused the GPL of spreading like a 'virus'. According to Richard Stallman the picture of a "virus" is not only offending, but also wrong: Software under the GPL never "attacks" and "infects" other software. Rather, software under the GPL is like a spider plant: If one takes a piece of it and puts it somewhere else, it grows there, too.

    There are other open copyright licenses that are 'permissive' which allow redistribution in whatever form a person or entity pleases. This type of copyright allowed Mac to take a Unix-based operating system and turn it into its most recent operating systems and not share the code.

    source: http://en.wikipedia.org/wiki/GNU_General_Public_License

  • Drupal history
    • highlights of current adoption
  • Core vs. Contrib

    Drupal Core is a highly vetted piece of software that has release cycles that last about a year and a half. The current version is Drupal 6. Drupal 7 is expected to be released sometime this Spring. Code contributed to Drupal core goes through a rigorous testing process.

    Drupal modules are pieces of functionality that can overwrite and extend Drupal core. Drupal modules are often referred to as 'contrib' and do not go through any vetting process other than the peer review of the community. Drupal module land is often known as the 'wild west' as there is great, less than great and everything in between.

  • How Drupal works at a high level

    Drupal runs on a number of operating systems and can run with different web servers and databases but is most often use with the LAMP stack:

    Linux - operating system
    Apache - web server
    Mysql - database
    Php - scripting language


    From a 50,000 perspective, Drupal lives in two place. 1) code that creates the functionality in PHP and 2) a database that stores content and configuration changes in Mysql.

    When visiting a web page here is a very simple explanation of what is going on. Apache takes a request from a browser. Drupal PHP code is run which connects to the Mysql database. The data from the code and the database is returned to the browser. Linux makes sure all of these processes can work together.

  • What Drupal is (code, files, database)

Practice:

  • Overview of Administration
    • Site Building
    • Site Configuration
    • User permissions
    • Content
    • status menu
    • turning on and off modules
  • Edit Site Name
  • Go to admin -> site configuration -> site information

  • Add about page
  • create content -> page

  • Add menu
  • admin -> site building -> menus -> primary links

  • Turn on and off themes, turn on and off site elements
  • Add Contact form
  • enable contact module
    add category in admin -> site building -> contact form

Class 2: Content Types, Development Tools, and Site Building Contiued

Theory:

  • Different Page Elements
    • nodes: the heart of drupal content
    • fields: the future of drupal content
    • menu
    • blocks / regions
    • taxonomy
  • Content Types
    • what are they
    • nodes / fields
  • Emfield
  • Development Tools
    • PHPMyadmin
    • Devel

Practice:

  • Make Event content type
      1. Turn on Content, date, dateapi, date popup modules
      2. Go to admin -> content management -> content types. click 'add content type'
      3. name the content type 'event'
      4. Go to admin -> content management -> content types. click 'manage fields' next to event content type
      5. Add a new field by putting a field name and description in the 'Add new field' box. Select 'date' and 'text field with date pop-up calendar'
      6. The next screen will be the settings for your date field. I would recommend '1' for number of values, since we only want people entering one date
      7. Go to 'create content' -> 'event' and you can add an event with a pop-up date!

Class 3: Drupal Community, Drupal Code, and Video Content Type

Theory:

Practice:

  • Add Video Content Type

Class 4: Introduction to Views

Theory

Practice:

  • Views
    • Arguments
    • Relationships
    • Helpful modules
  • Calendar:

    Need to change the arguments:

  • WYSIWYG!

Class 5: Media and Drupal

Theory:

  • Working practices: how not to drive yourself crazy
  • Deployment Dilemna
  • Intro to subversion
  • Navigating hosts
  • Backup Strategies
  • Panels: you might want to use this

Practice:

  • Path Aliases and SEO
  • Other great contrib modules
  • Adding five-star for voting
  • Comment notify
  • Making a survey using webform

Class 6: Theming Overview and Site Launch

Theory:

  • Theming WTF
  • Starter themes
  • Base themes
  • Theme files
  • Theme templates
  • Theme functions

Practice:

  • Selecting a new theme
  • Changing css
  • Using devel to identify templates and functions
  • Overiding a theme function
  • Overiding a template

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.

Type the characters you see in this picture. (verify using audio)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated. Not case sensitive.