Now that the university is able to create job postings, it would be helpful if prospective employees could submit resumés to the positions in which they’re interested. In this lesson we will build out the Job Application content type. We will need to add another reference field, this time a node reference, to tie the applications to the correct job. To make it possible for applicants to submit their resumé we'll also need to add an upload field so that applicants can upload a document of specified file types.
Additional resources
The Views module provides listings of data on your site: users, comments, nodes, and more. Any listing of data provided by the Views module is called a view, and most Drupal websites today use Views in many different ways. In this lesson we'll get an overview of the Views module, including some specific concepts and terminology like Data Types and Displays, along with a tour of the major view settings and what they do.
Additional resources
The requirements of our site include two different main views. One view is a public-facing list, showing all the available jobs to users of the site. In this lesson we'll create our first view by enabling the modules we need, walking through the Views wizard to get our basic view in place, and then modifying various settings for our fields and working with contextual filters.
Additional resources
The Applications view will serve both as a tool for administrators and as a reference for users, with three different displays. In this lesson, we'll start to build the Applications view by creating the default display with our first listing, which is a master list of all the applications on the site. To pull in all of the information we're going to need, we'll begin working with Views relationships.
Additional resources
With our basic Applications view built, we have our default display. We also need another faculty display on the site. This second list will be largely the same as the default list, but it needs to show up as a tab on a job posting node, and only list the applications which relate to that particular job. We're going to need to create a new display, and override certain settings, plus add in a contextual filter, in order to get this view completed.
Additional resources
In this lesson we tackle the last display we need for our Applications view, by building a block for our applicants. This has us creating a new type of display, a block, as well as continuing to work with overrides. We also have to change the permissions on this particular display so regular users can see it, but at the same time we only want the view to show a user their own applications.
Additional resources
The basic job website that we’ve built only touches on the surface of the capability of Field and Views. There are a lot of possibilities for extending the functionality of this job site by adding more fields to both the Job and Job Application content types. In this lesson we'll review some other modules to explore:
- Automatic Node Titles
- Node Reference URL Widget
- Content Access
- Field Permissions
Additional resources
Views relationships let you add related information to your view. Here is how you can take advantage of various references, like node and user references, or file information. We'll be using relationships to add some contact details to our Job openings view.
Additional notes:
If you don't see the field "fields" under the dropdown menu when creating a Relationship for the contact person's phone number it's possible you don't have the Views module enabled. (Or perhaps you've missed enabling the Views UI module...make sure you have both). Then complete the following steps:
- Create and SAVE your view-relationship.
- Create a user reference where you want to reference the user.
- Now when you create the user reference it will have an option to reference your view.
This video series will continue the Job Board example from the Fields for Site Builders series where we will discover ways to display all of the job postings, allow people to find the one they are looking for and easily apply for it.
In this video Michelle will give us a tour of our example site from the manager perspective, so we can see how you manage a group. We'll look at the extra administrative rights they have for the group, including accepting new members. We also talk about roles and permissions within a group, and briefly discuss the difference between permissions and access control.
Although the video uses the "dev" version of Organic Groups, there has since been a stable release of the 2.x branch.
Additional resources
In this chapter Karen Stevenson will cover getting some content and users into our site. She will achieve this using the Devel module, with a few tips and tricks because of all the references Organic Groups uses to work its magic. The reason we need this content is so we can understand how all the components of a group work. From a manager to member, and individual content, each has a different role in an Organic Group.
Additional notes:
Around 3:22 a new Announcement was made with Cardinals as a selectable option in the Team field. That option only appears if, as admin, you explicitly join the Cardinals group.
Additional resources
Converting an exisiting theme to Omega takes time and some planning, but Omega gives us plenty of options of moving things around the page all without touching a piece of code. When working with a grid layout we use Omega to set all of our content to span the proper columns all while moving our content from zone to zone so it is placed properly on the page. We will cover:
- Moving content from zone to zone
- Choosing proper zone column widths
- Splitting column amounts to create right and left columns
Once all of this is complete we are just a few steps away from getting into some CSS and really making our theme come together as an Omega sub-theme.
Additional notes:
If you want to touch code, you can edit the .info file as such (for the first part, moving branding zone):
settings[alpha_region_branding_zone] = 'header'
...
settings[alpha_region_branding_weight] = '3'
...
settings[alpha_region_header_first_weight] = '1'
...
settings[alpha_region_header_second_weight] = '2'
Responsive design is more than a just a buzzword these days but a standard practice of good web shops when building out a site. Omega provides a responsive design out of the box and gives lots of options to layout your content in the proper places and the ability to work with the break-points all with a User Interface. In this lesson we will cover:
- Omega responsive options
- Column settings for your grid layout
- Omega responsive layout settings
- Device viewports and media queries
We end the lesson getting our new sub-theme ready to handle our 960 robots theme and the 16 column setup we designed it with.
If you prefer working with code, instead of the web UI, you may configure your theme as follows to change your column settings from 12 grid columns to 16 in your theme's .info file:
Find and replace all the instances of:
_columns] = '12'
with:
_columns] = '16'
There may still be additional regions that also need to be set which weren't the full width. You can edit other regions as needed, such as:
_region_user_first_columns] = '8'
change to:
_region_user_first_columns] = '12'
Combining Conditions
FreeThis screencast explains how to use AND and OR groups in Rules to configure more complex conditions. This is demonstrated by creating a rule that notifies administrators when content is promoted to front page using an OR group. (The same procedure can be used to create an AND group.)
The screencast covers:
- How to combine conditions
- How to create an OR group
- Some advice about the order of conditions
- How to delete reaction rules
- Why you shouldn’t use the “send e-mail to all users in a role” action
- Why it might be useful to have messages printed out when configuring complex rules
Additional resources
Rules guide (Drupal.org)
In this lesson we cover the Insert Module along with FileField Sources Module. The Insert Module is a great module when combined with a few others and is setup right. It takes a few configurations but gives you lots of flexibility with your images and placing them into the text area. We also demonstrate how you can use the FileField Sources module to make the insert module that much better when it comes to media management.
Note: not all Drupal modules provide access to images that are uploaded using a different toolkit. Before committing to a specific suite of media management modules, you should create a test site and practice uploading images. Based on your tests you will be able to better evaluate if you have chosen the right tools for your content managers.
Additional resources
Walks through the process of first adding the search block to the node template file, and then explains some of the best practices for incorporating JavaScript scripts within your theme. Walks through how to protect the dollar-sign variable, and how to use the Drupal behaviors instead of the document ready so that your JavaScript will fire not only on page loads, but also if there is any dynamic material being loaded on the page through asynchronous page loads. We'll show you how to select the jQuery selector to target the desired element, and how to conform to Drupal's best-practice coding standards when it comes to integrating JavaScript and jQuery into your theme. You can learn more about jQuery itself with the Introduction to jQuery Series.
To use Query in no conflict mode, because was not defined.
Add this line on the top: jQuery.noConflict(); more info here: http://api.jquery.com/jQuery.noConflict/
To improve how the search box looks, you need to modify the following:
currently : search-theme-form
modify to: search-block-form
and then in the property in line 321 to look like this:
/* Header quick search */
#header form#search-block-form {
top: -165px;
Additional resources
In this lesson Karen will talk about how to use Panels and Panelizer to display group content in various ways. She will first demonstrate how to use the built-in features that come with Organic Groups to construct a basic group and group panel. She explains how this can be done using the features module. She then demonstrates using the new Panelizer module to create a system where every group can have its own layout and content. Note: Karen enabled the Features module then separately enabled the OG Example feature, which has a dependency on Panels and other modules so basically Features enabled them. If you actually enable that feature on the modules page it will tell you that panels is required and asks to install it. Karen however enabled the Panels modules via the Features admin page.
Additional resources
Shows how you can use the ajax framework in Drupal 7 to load additional content onto the page dynamically after clicking on a 'read more' link.
The sample code for this series is in the Downloads tab for the first video in this series: http://drupalize.me/videos/introduction-jquery-and-javascript-drupal#do…. If you're skipping around, and things aren't working, you may benefit from going back to the beginning and completing each of the videos in order.
In this lesson, Joe Shindelar goes over all the possible permissions with Organic Groups. He explains the differences between the regular core permissions, and how Organic Groups can override these to give the proper user experience of grouped content. He will show how this affects each role in a group and how to manage those roles.
Note: In Chapter 8 ("Organic Groups Permissions") there are several blocks (Group details, Create content, etc.) and the "groups" tab in the main menu that were not introduced in Chapter 7. These blocks and the new tab are explained in Chapter 10. Sometimes we don't record tutorials in the same order they appear online, which creates discrepancies. This is what happened here—sorry!
Additional resources
Before we can nicely publish our favorite bands’ photos on our website, we need to make sure to set up image styles, in order to create scaled-down versions of the images while leaving the original images intact. In this lesson we'll modify an existing image style to customize it, and also see how we can improve our image quality.
Additional resources
The Media module for Drupal 7 solves a number of long-standing media-related problems in Drupal. At its core, Media provides a framework to manage media assets on a Drupal site, regardless of whether those assets exist on the site’s server or somewhere else on the Internet. Media has had much active development over time, and was a moving target when Using Drupal was written, so the latest version of Media is a fair bit different from the version we cover in this lesson, "2.0-unstable3." Version 2 of Media is very, very different from version 1, which is a much older version. We highly recommend that you learn the fundamental pieces of Media 2.0 using the source code that comes with the book and is covered in the About the Using Drupal series. That will allow you to follow the lesson without getting lost in the changes. Then, when you upgrade to the latest version down the road, you will have a solid foundation to explore the newer versions.