The Views Context
FreeThis screencast covers the following topics:
- Creating a Context display type in Views.
- Placing individual View rows in your custom page.
- Displaying other View render elements in your custom page (such as the pager or header).
- Using the View context to load further contextual object.
This screencast covers the following topics:
- Adding new contextual objects with manual selection.
- Adding new contextual objects with relationships.
- Chaining contextual objects, with the example of loading a node term, and then loading the term top level parent (or not).
This tutorial covers the following topics:
- The Contextual Administration module and variant type.
- Auto-populating node reference fields for new nodes.
- A quick glance at other functionality in Contextual Administration: vocabulary administration pages, user administration pages, quick content handling pages, and more.
- Using the local actions menu type.
This screencast covers the following topics:
- Rearranging the node edit form with Panels.
- Some words about how the render arrays in Drupal 7 makes this possible.
This screencast covers the following topics:
- Creating custom paths with Page manager
- Defining required and optional wildcards in a path
- Loading contextual objects from path arguments
- Creating access rules for custom pages
- Creating menu tabs, local actions and other visible menu items
- Making menu items only show in certain circumstances, such as only on selected node types
Panel Pane Settings
FreeThis screencast covers the following topics:
- Using visibility rules to determine when panes should show
- Using per-pane or per-page caching
- Setting caching granularity to per context or per argument
- Editing basic pane settings
- Moving panes between different panel regions
- Some layout settings for panes
More View Panes
FreeThis screencast covers the following topics:
- Setting name, description and category for view panes
- Overriding the title of the view
- Overriding the number of items to display
- Some other override options
- The "context is optional" setting for argument input/contextual filter value input
This screencast covers the following topics:
- What is Panels?
- Selecting Panels layout
- Disabling block regions on a panel page
- Adding content to a panel
- Outputting individual node fields in a panel page
- Manually setting the title on a panel page
- Inheriting page title from a panel pane
This screencast covers the following topics:
- How to create additional variants to a custom page
- How to set selection rules with more than one condition
- Why the order of variants is important, and how to change their order
This screencast covers the following topics about the Page Manager module, which is a module included within CTools.
- The basic framework of Page manager – creating custom paths and assigning content/reactions to them
- Mentioning some modules that can be used with Page manager, such as Panels and Contextual administration
- Overriding node templates to allow customized content/reaction
- Introduction to variants
- Introduction to selection rules
- Using the HTTP response code variant type, and using it for redirections
- Introduction to context or contextual objects
In this chapter we learn how to get data out of the database and display it. The example walks through writing a module that creates a page that displays how many nodes are published and unpublished for each content type in our site. We use the db_select() function to accomplish this.
In this chapter we learn about changing the definition of a database table after it has already been installed. This example expands on the previous chapters by adding a new field to the table to collect the date a user last visited a node. We learn more about hook_update_N() as well as db_add_field().
In this chapter we learn other ways to interact with our database beyond the simple db_select() query from the earlier video. This example walks through writing a module that that saves and displays data about how many times a user has visited a specific page. We learn about db_select(), db_insert(), db_update(), db_merge(), db_delete() and introduce the concept of "get and set" helper functions.
In this chapter we learn how to create a new database table. This example walks through creating a module that defines the the properties of our new table and also programatically creating that table. We learn about hook_schema() and hook_update_N() in our module's install file.
Trainers note: This video starts out with a module that implements hook_node_view() and stores data about views in the $_SESSION variable. It also states that we built this earlier in the series. However, that's not true. We did talk about hook_node_view() in https://drupalize.me/videos/event-driven-hook-system, but we never actually wrote the $_SESSION handling part. So, if you're following along and want the same sample code we start with make sure you download the code attached to this node.
In this excerpt from the Overview of Drupal 7, Angie Byron, talks about the Database API in Drupal 7. This was a round table discussion with other Lullabots on the line who ask and answer questions, in addition to Angie's presentation. This lays a good foundation for how the database system works in Drupal and sets you up for the hands-on tutorials that follow.
Additional resources
This video goes through the process of changing some of the properties of a form with the hook_form_alter() function. This hook is a very powerful tool to be able to modify existing Drupal forms, created by core or contributed modules, and tailor them to your needs.
This screencast shows how to use fields when scheduling Rules components. In the example we are also using the Flag module, to allow people to sign up for reminder e-mails 24 hours before an event starts. The screencast covers:
- Using flags to load user lists in Rules
- Scheduling a rules component from a triggered rule
- Some words about rescheduling the evaluation if the event date should change
- Using conditions to make fields available in Rules configuration
- Using a date field to set evaluation time
- Adding an offset to the evaluation (-1 day)
- Verifying the configuration by executing the action set manually
Note: It would have been smarter to use the “Before saving content” event for this rule – to make it act on both new nodes and updates of existing ones. If combined with a check to see that the event is in the future, you would actually have pretty good notification system!
Additional resources
Rules guide (Drupal.org)
This video walks through the new interface in Drupal 7 for enabling themes, setting them to be the default, and configuring the administration theme. It also walks through the process of downloading a contributed theme, and where to store it. Finally, it walks through the theme settings pages that provide a user interface for turning on and off specific options for a theme.
Additional resources
This video shows how a module can integrate with Drupal's theme system by exposing a new themeable item to the theme registry with hook_theme(), and then creates a function in order the customize the output of that themeable item. The then video demonstrates how the theme layer can override the markup defined with theme functions at the module layer.
This presentation provides an overview of the different phases of the form submission and validation process that Drupal uses with the Forms API. This will give you a good foundation for implementing forms yourself in the following videos.